1
이 pie-chart fiddle에서 내 json의 데이터 (유형 및 하위 유형)를 기준으로 슬라이스의 색상을 지정하고 싶습니다.원판에 d3 파이 차트 색상 할당
var data = {
"details": [
{ "id": 1, "name": "AAA", "pcArray": [25,75], "type": "c", "subtype": "p", },
{ "id": 2, "name": "BBB", "pcArray": [25,175], "type": "c", "subtype": "r", },
{ "id": 3, "name": "CCC", "pcArray": [5,95], "type": "e", "subtype": "p", },
{ "id": 4, "name": "DDD", "pcArray": [10,30], "type": "e", "subtype": "r", },
{ "id": 5, "name": "EEE", "pcArray": [0,30], "type": "c", "subtype": "r", },
],
};
그래서 나는이
// 0: blue, 1: orange, 2: green, 3: red
var color = d3.scale.category10().domain(d3.range(0,3));
같은 색 벡터를 할당 한
for type: "c" and subtype: "p" use color(0)
for type: "c" and subtype: "r" use color(1)
for type: "e" and subtype: "p" use color(2)
for type: "e" and subtype: "r" use color(3)
예를 들어 싶습니다하지만이 경로를 그리는시기가되면 나는 액세스 할 수 없습니다 내 원래 json 그래서 어떤 색상을 사용할 수 desable 수 있습니다. 파이() 함수가 반환하는 것만 액세스 할 수 있습니다 (예 : value/startAngle/endAngle
)
그래서 내 질문은 경로를 그릴 때 원본 데이터에 액세스하여 드로잉 할 때 사용할 색을 결정할 수 있습니다. 슬라이스?
감사합니다. 그런 다음 데이터를 사용하여 (함수의 색상이 설정되어)
var d = d3.select(this.parentNode.parentNode).datum();
:
이 멋지다. 네가 할 수 있다는 것을 나는 몰랐다. 내가 물어도 될까요, 왜 내가 0 일 때 흰색으로 돌아오고 있습니까? 그것은 파이 차트에 반영되어 있으며 정확하게 원하는 것은 아닙니다. – gaitat
알겠습니다. 변수 'i'(바이올린에서)는 그려지는 경로에 해당합니다. – gaitat
이것은 첫 번째 파이 세그먼트와 두 번째 파이 세그먼트를 구별하는 방법이었습니다. 어떻게 할 것인지 지정하지 않았으므로 – Josh