2014-01-25 67 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) + ")"; 
    })