0

我目前正在 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 条目。

如果我需要相同对象的特定不同值怎么办?

我对将所有年度总进口量显示为部分的饼图不感兴趣,而是将特定商品的年度进口量作为年度总进口量的一部分。我的值是 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": ...}];
4

1 回答 1

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 中的数字。

于 2013-03-04T12:18:38.870 回答