D3에 익숙하지 않은 점은 JSON과 같은 복잡한 데이터 세트가 처리되는 방식에 대해 약간의 불확실성이 있음을 의미합니다. 일반적으로 JSON을 트래버스 할 때 나는 루프와 같은 것들을 D3으로 중첩합니다. 나를 돌 보시는 것 같아.D3 Traversing Internal JSON
내가 데이터 바인딩 D3에에 대한 자습서를 다음,이 해낸했다 : 그것은 잘 작동
var dataset = [{
"bread": "Honey Bread",
"ingredients": [{
"ingredient": "Whole Wheat Flour",
"quantity": 1
}, {
"ingredient": "Water",
"quantity": 1
}, , {
"ingredient": "Honey",
"quantity": 1
}, {
"ingredient": "Yeast",
"quantity": 1
}, , {
"ingredient": "Salt",
"quantity": 1
}]
}, {
"bread": "Grain Bread",
"ingredients": [{
"ingredient": "Freshly Milled Whole Wheat Flour",
"quantity": 1
}, {
"ingredient": "Water",
"quantity": 1
}, , {
"ingredient": "Honey",
"quantity": 1
}, {
"ingredient": "Yeast",
"quantity": 1
}, , {
"ingredient": "Salt",
"quantity": 1
}]
}]
var svg = d3.select(".images")
.append("svg")
var circles = svg.selectAll("circle")
.data(dataset)
.enter()
.append("circle");
circles.attr("cx", function(d, i) {
return (i * 50) + 25;
})
.attr("cy", function() {
return 25;
})
.attr("r", function(d) {
console.log(d);
for (var i = 0; i < d.ingredients.length; i++) {
return d.ingredients[i].quantity;
}
})
, 내 문제는 첫 번째 개체 노드에 도달 것을 의미하는 최종 return
에 루프를 종료하고 하나만 할당합니다 (1
).
그래서 어떻게하면 각 성분에 대한 원이 생길 수 있습니까? 다른 방법을 사용합니까, 아니면 간단하게 조정할 필요가있는 코드입니까?
가 일부를 제공 할 수
그런 다음 중첩 된 재료를 만들 수
bread
요소를 사용할 수 있습니다 예제 c 마지막 시나리오에 대한 ode? 그것이 내가 향하는 것입니다. 각 성분에 대한 원은 부모 빵 개체가 아닌 서클에 바인딩됩니다. –