2
我正在通过以下教程学习d3.js,并尝试阅读示例(谢谢迈克)。D3.js使用嵌套数组从tsv移动到json
在这个例子中:http://bl.ocks.org/mbostock/3884955,我听不太懂如何从TSV移动到嵌套的JSON。我有JSON,如果数据没有嵌套(见底部),它工作。
d3.tsv("d3-multi-series-line-chart-data.tsv", function(error, data) {
color.domain(d3.keys(data[0]).filter(function(key) {
return key !== "date";
}
));
...
到::我已经从修改了代码
d3.json("d3-multi-series-line-chart-data.json", function(error, data) {
color.domain(d3.keys(data[0]).filter(function(key) {
return key !== "date";
}
));
...
[编辑] 我有直觉的下面的代码段内的修改需要在于:
var cities = color.domain().map(function(name) {
return {
name: name,
values: data.map(function(d) {
return {date: d.date, temperature: +d[name]};
})
};
});
但我没有看到如何访问修改后的json上每个城市的温度。 [/编辑]
我试图打电话给关键的温度,但无济于事。我已经看过这里和文档中的一些例子,但是我对于不理解我感到很蠢。所以如果有人能够很好地向我展示,那将非常感激。
目前的JSON结构如下:
[
{
"date":"20111001",
"New York":"63.4",
"San Francisco":"62.7",
"Austin":"72.2"
},
{
"date":"20111002",
"New York":"58.0",
"San Francisco":"59.9",
"Austin":"67.7"
},
{
"date":"20111003",
"New York":"53.3",
"San Francisco":"59.1",
"Austin":"69.4"
},
...
]
我想是这样的:
[
{
"date":"20111001",
"temperature":{
"New York":"63.4",
"San Francisco":"62.7",
"Austin":"72.2"
}
},
{
"date":"20111002",
"temperature":{
"New York":"58.0",
"San Francisco":"59.9",
"Austin":"67.7"
}
},
{
"date":"20111003",
"temperature":{
"New York":"53.3",
"San Francisco":"59.1",
"Austin":"69.4"
}
},
...
]
无论您使用开始与什么数据结构,你必须把它改造成一些类似于什么在本例中使用。另外,如果你想使用嵌套结构,那么有更合适的例子。 –
@LarsKotthoff我正在寻找一个不太普遍的答案。 :/ – thoroc
我在说的是,可能有更温柔的方式来学习D3 :) –