2012-11-10 2 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

콘솔 로그 란 무엇입니까? 'color' 함수를 수동으로 호출하면 작동합니까? –

+0

콘솔의 @ Lars Kotthoff 색상 (d.name)은 처음에는 올바른 색상 코드를 반환합니다. 그러나 상태 수가 0으로 감소하고 다시 증가하면 문제가 발생하고 색상이 바뀌게됩니다. 모든 해결책 ??? – selvagsz

+0

"색이 바뀌다"는 것은 무엇을 의미합니까? 'color'를 동적으로 수정하고 있습니까? 상태 수는 어떻게 얻습니까? –

답변

1

몇 가지 제안 제발 도와주세요 .... in 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); }) 
관련 문제