我是d3js的新手,我在这里缺少一些基本的东西。
在我的JSON数据中,我添加了一个颜色元素barColor(到第二组值):
[ {"title":"AMER Revenue","subtitle":"703 US$, in thousands","ranges":[840,945,1200],"measures":[703],"markers":[1050]}, {"title":"AMER COGS","subtitle":"587 US$, in thousands","ranges":[1200,832.5,740],"measures":[587],"markers":[925],"barColor":["red"]} ]
正在正确读取JSON barColor数据,因为我可以在各种环境中使用它,而不是我想要的地方。
这是我所得到的(完成了其他成功的测试):
/* Select the bars and use the color from the json data */
d3.selectAll(".bullet .measure.s0")
//.style("fill", "red"); //This works. All .measure.s0 bars set to red.
.style("fill", function(d) { return d.barColor; }); //Why doesn't this work?
具体来说,它是 d3.selectAll(" .bullet .measure.s0")。style(" fill",function(d){return d.barColor;}); 并不像我期望的那样工作。也就是说,我希望d.barColor将measure.s0的填充更改为红色。
我花了很多时间阅读和搜索,但似乎被卡住了。
提前感谢任何指导。
答案 0 :(得分:0)
在这种情况下,您不想使用.style
。请使用.attr
,因为{J}数据中已经定义了barColor
。
要解决此问题,请尝试更改此内容:
.style("fill", function(d) { return d.barColor; });
对此:
.attr("style", function(d) { return d.barColor; });
我自己对d3还有点新鲜,所以你可能不得不调整一些,但希望它会让你走上正轨。