Как задать собственные цвета для прямоугольников в реагирующей d3-древовидной карте на основе поля в наборе данных json?

Как задать собственные цвета для прямоугольников в реагирующей d3-древовидной карте на основе поля в наборе данных json? Карта дерева d3 должна менять цвет в соответствии с данными, переданными в json. здесь я использую модуль npm response-d3-treemap для генерации древовидной карты, все отлично работает, кроме этого сценария использования. Предположим, что поле имени в наборе данных - это аналитика, мне нужен определенный цвет.

JSON DATA

    {
        "name": "Sample Data",
        "children": [
            {
                "name": "analytics",
                "link": "https://google.com",
                "children": [
                    {
                        "name": "cluster",
                        "children": [
                            { "name": "AgglomerativeCluster", "value": 3938, "link": "https://blog.josequinto.com" },
                            { "name": "CommunityStructure", "value": 3812 },
                            { "name": "HierarchicalCluster", "value": 6714 },
                            { "name": "MergeEdge", "value": 743 }
                        ]
                    },
                    {
                        "name": "graph",
                        "children": [
                            { "name": "BetweennessCentrality", "value": 3534 },
                            { "name": "LinkDistance", "value": 5731 },
                            { "name": "MaxFlowMinCut", "value": 7840 },
                            { "name": "ShortestPaths", "value": 5914 },
                            { "name": "SpanningTree", "value": 3416 }
                        ]
                    },
                    {
                        "name": "optimization",
                        "children": [
                            { "name": "AspectRatioBanker", "value": 7074 }
                        ]
                    }
                ]
            },
    {...},
{...}
    ]
    }

И сторона реакции это..

import React from 'react';
import TreeMap from "react-d3-treemap";
import "react-d3-treemap/dist/react.d3.treemap.css";

class DataExplorerComponent extends React.Component {
    constructor(props) {
        super(props)
        console.log("Propzzz---->>",this.props)
    this.state = {
    }
    }
    componentWillMount() {     
    }
    render(){

        return( 
            <div className="col-xs-10 col-sm-10 col-md-11 data-explorer-container-area">
                <div className="row">
                <h1>TREEMAP</h1>
                </div>
                <TreeMap
                    height={500}
                    width={800}
                    data={this.props.chartdata}
                    valueUnit={"Units"}
                />
             </div>        
        )
    }
}

 export default  DataExplorerComponent;

В данных JSON, если значение "имя": "кластер", то я хочу определенный цвет для этого прямоугольника, как этого добиться? любое решение или предложения??

0 ответов

С помощью ^1.0.15, похоже, что цвета определяются программно, в зависимости от количества узлов и т. д. Однако вы можете указать диапазон цветов:

<TreeMap data={data} bgColorRangeLow={"#000"} bgColorRangeHigh={"#fff"} />

По умолчанию используется chromatic.interpolateGreens, но следующее используется для определения цвета, если оба bgColorRanges указаны:

this._nodesbgColorFunction = scaleLinear<any>()
    .domain(d)
    .interpolate(interpolateHcl)
    .range([this.props.bgColorRangeLow, this.props.bgColorRangeHigh]);
Другие вопросы по тегам