2014-01-25 55 views
1

我有一个柱状图,我试图让它有基于价值的动态填充颜色,如下所示:d3.js动感风格尽显只显示黑色条形图

svg.selectAll("rect") 
     .data(dataset) 
     .enter() 
     .append("rect") 
     .attr("fill", function(d) { 
      return "rgb(9,19," + (d.BALANCE/10) + ")"; 
     }) 

是亮度更改代码直接从http://alignedleft.com/tutorials/d3/making-a-bar-chart/中获取,并且适用于他,所以我很困惑为什么它对我显示为黑色。在Firebug的,酒吧显示属性如下:

<svg width="1140" height="300"> 
    <rect x="0" y="219.39428571428573" width="7.571428571428571" height="80.60571428571428" fill="rgb(9,19,70.53)"> 
...etc. 
</svg> 

...但在网页中,他们是全黑的。使用最新的Firefox浏览器,如果这很重要。

回答

1

对于RGB值,您需要整数,而不是分数。在这种情况下,你的70.53是一个无效值。使用Math.round()来解决这个问题:

.attr("fill", function(d) { 
     return "rgb(9,19," + Math.round(d.BALANCE/10) + ")"; 
    })