我目前被困在如何遍历JSON结构(我创建)以创建并排的环形图表。我想我已经创建了一个糟糕的结构,但会很感激任何建议。嵌套的JSON结构并排构建d3.js图表
我正在从Mike Bostock的例子:http://bl.ocks.org/mbostock/1305337,它为源数据使用.csv文件。
在那个例子中,他使用d3.nest()来创建一个具有一系列航班起源的嵌套数据结构。
var airports = d3.nest()
.key(function(d) { return d.origin; })
.entries(flights);
他就能够到新的数据结构绑定到一个新的div选择:
var svg = d3.select("body").selectAll("div")
.data(airports)
.enter().append("div")
这让他可以为每个航班始发地为圆环图。
我的JSON数据如下所示:
{"years": [
{
"year": 2015,
"type": "bestSellers",
"chartOne": [
{
"label": "smarties",
"value": 11
},
{
"label": "nerds",
"value": 13
},
{
"label": "dots",
"value": 16
},
{
"label": "sour patch kids",
"value": 61
}
],
"chartTwo": [
{
"label": "Pepsi",
"value": 36
},
{
"label": "sunkist",
"value": 13
},
{
"label": "coke",
"value": 34
}
]}
我是一个CS的学生,用的数据结构的最佳实践和d3.js.一点经验我创建的结构对我来说看起来并不“平坦”,所以我不确定是否需要使用d3.nest()。但是,我不清楚如何使用该结构来遍历chartOne和chartTwo。
我可以得到图表内的数组: var chartOne = years [0] .chartOne; var cartTwo = years [0] .chartTwo;
但我想能够有一个对象访问chart1和chart2。我很想在我的JSON中创建另一个数组块,但不清楚是否没有更简单的方法。
谢谢回答问题和示例代码。现在我明白了这一点对我来说完全有意义。 – AmericanCities