我目前正在迈出D3数据可视化的第一步。到目前为止,D3教程对我帮助很大。饼图教程http://bl.ocks.org/mbostock/3887235虽然没有进一步解释饼图的必要数据结构。
我的数据比示例的标签/值结构更复杂。我有存储在JSON中的特定商品的年度总进口数据和进口数据:
var data = [{"year":"2001","total_import":"100000","import_specific_good":"25000"},{"year":"2002",...}];
如果我理解教程正确,pie()将遍历每个DIFFERENT对象的SAME条目。
如果我需要SAME对象的特定DIFFERENT值,该怎么办?
我对一个饼图不感兴趣,这个饼图显示所有年度总进口量作为份额,但每年进口特定商品作为年度总进口量的一部分。我的值为1.(total_import - import_specific_good)和2. import_specific_good。
我建议的数据结构是否符合我的要求?或者我是否必须重新构建所有内容,以便每年的值存储在一个单独的变量中?
var data_2001 = [{"label":"Total Import","value":"100000"},{"label":"Import of Specific Good","value":"25000"}];
var data_2002 = [{"label": ...}];
答案 0 :(得分:0)
您不必使用特定的数据结构 - 您可以(并且无论如何都需要)修改示例,以便您可以使用您喜欢的任何内容!所以你可以使用你的第一个JSON就好了。由于您只显示了2个值,因此您可以简单地构造结构以便即时传递给.data()
。
// for pie chart
...data([json[index].total_import - json[index].import_specific_good,
json[index].import_specific_good])...
...
// similarly for the labels
我建议将数字存储为JSON中的数字(例如没有引号) - 否则你必须将它们转换为Javascript中的数字。