2017-10-15 64 views
0

我正在尝试在d3js中创建一个sunburst图表,并希望每个项目/节点都具有读取包含层次结构的json文件的特定颜色。在d3js社区看过很多例子,但从来没有找到明确的答案。谢谢!从json为d3js设置特定颜色sunburst图表

这里是我的JSON(flare2.json)文件:

{ 
    "name": "Root","color": "#c0e2f1", 
    "children": [ 
     { 
     "name": "T1","color": "#a3a3a3", 
     "children": [ 
      {"name": "S1", "size": 3938, "color": "#a9a9a9"}, 
      {"name": "D1","size": 3238, "color": "#ef69b4"} 
     ] 
     }, 
     { 
     "name": "T2", "color": "#c0e2f1" 
     } 
    ] 
} 

这里是JavaScript片段调用JSON:

d3.json("flare2.json", function(error, root) { 
    var g = svg.selectAll("g") 
     .data(partition.nodes(root)) 
     .enter().append("g"); 

    var color = d3.scale.ordinal(); 

    var path = g.append("path") 
     .attr("d", arc) 
     //.style("fill", function(d) { return colors((d.children ? d :  d.parent).name); }) 
     .style("fill", function(d) { return color(d.color); }) 
     .on("click", click); 
} 

回答

1

我想你可能使这太难了。下面一行

.style("fill", function(d) { return color(d.color); }) 

好像它并不需要使用color功能,而只是返回对象的颜色属性,就像这样:

.style("fill", function(d) { return d.color; }) 
+0

谢谢,@snapjs!是的,我通过“.style(”fill“,function(d){return d.color;})”来修复它。 –

相关问题