2012-11-10 97 views
0

我正試圖建立一個甜甜圈圖表。我如何添加特定於弧線的不同顏色。比如我要紅色的地位「一」,藍色狀態「兩節」,綠色狀態「三化」等等......如何在d3中將自定義顏色添加到圓環圖中的特定圓弧?

我嘗試以下,

var color = d3.scale.ordinal() 
.domain(["one","two","three","four","five"]) 
.range(["#013ADF", "#ACFA58", "#DF3A01", "#6b486b", "#a05d56"]); 


paths.enter().append("svg:path") 
     .attr("stroke", "white") 
     .attr("stroke-width", 0.5) 
     .attr("fill", function(d, i) {console.log(color(d.name)); return color(d.name); }) 

我能最初得到顏色。但是,當任何狀態計數減少到0時,顏色會被混洗。而當我再次增加了狀態數,我是不是能夠得到特定顏色回來...

請幫助一些建議....

+0

控制檯日誌說什麼?如果您手動調用「顏色」功能,該功能是否正常工作? –

+0

@控制檯中的Lars Kotthoff顏色(d.name)最初會返回正確的顏色代碼..但是,如果我的狀態計數值中的任何一個值減少到零並再次增加,問題就會出現,並且我的顏色會被混洗......任何解決方案??? – selvagsz

+0

「彩色洗牌」是什麼意思?你是否動態修改「顏色」?你如何獲得狀態計數? –

回答

1

你最好每次更新的顏色不僅在enter()中。

paths.enter().append("svg:path") 
    .attr("stroke", "white") 
    .attr("stroke-width", 0.5) 

path.attr("fill", function(d, i) {console.log(color(d.name)); return color(d.name); }) 
相關問題