【发布时间】:2013-06-29 06:22:36
【问题描述】:
我正在从 csv 文件创建 Treemap。
csv 文件中的数据是分层的,因此我使用了d3.nest()。
但是,生成的 JSON 格式为 {key:"United States", values:[...]}。
可缩放的treemap 需要{name:"United States", children:[...]} 的层次结构。
我已经尝试将示例中的名称和子项替换为键和值,但它不起作用。
如果有人已经研究过在可缩放树形图上使用键和值,请提供帮助。我是 D3 的新手,我不知道 d.children 是指数据中的结构还是价值。
这是使用 d3 将世界大陆、地区和国家从 CSV 转换为层次结构的代码。
$ d3.csv("../Data/WorldPopulation.csv", function (pop) {
var treeData= { "key": "World", "values": d3.nest()
.key(function (d) { return d.Major_Region; })
.key(function (d) { return d.Region; })
.key(function (d) { return d.Country; })
.entries(pop)
};
结果的前几行是:
`[{"key":"AFRICA","values":[{"key":"Eastern Africa","values"
[{"key":"Burundi","values":[.........`
我不能使用可缩放树形图,因为它需要 json 中的名称和子标签,而不是键和值。
【问题讨论】:
-
转换后的对象中是否有名为“size”的属性?请检查mbostock.github.io/d3/talk/20111018/flare.json的数据结构,你最好把你的整个json代码贴在这里。
标签: javascript d3.js treemap