我正在为以下本地存储在myfile.geojson
中的geojson数据绘制条形图、饼图和气泡图。通过堆栈溢出,我知道了如何做饼图。以它为参考,我正在尝试做条形图。我试过了,但没有得到。这是geojson文件的代码。
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
"profit": 326,
"npa": 174.000000
}
}, {
"type": "Feature",
"properties": {
"profit": 1762,
"npa": 1683.000000
}
}]
}
我尝试的代码是在这个plunker链接
我是d3的新手。据我所知,我尽力了。提前感谢
您面临的另一个问题是,您需要将geojson数据转换为有用的平面数组格式——您应该检查函数map
(将列表映射到列表)和reduce
(将列表映像到值)。通过使用这两个函数(也是嵌套的),您可以很容易地从原始数据中创建漂亮的数据集。
最后,这里是一个基于plunker和提供的代码片段的条形图的工作示例:http://plnkr.co/edit/eqJ7AkzWpHO4ZQENkXgy?p=preview
相关的数据处理部分发生在这里,我从geojson文件中提取一个数据数组和一个标签数组:
d3.json("myfile.geojson", function(res) {
var data = res.features.map(function(d){
return d.properties.profit;
});
var labels = res.features.map(function(d, i){
return i;
// return d.properties.nga;
});
barchart(500, 500, data, labels);
});
代码的其余部分处理如何正确显示条形图和轴。这个代码现在可以很容易地用堆叠区域图或饼图来代替。
我没能完全解决,只是提出了一些建议。希望它有帮助,其他人可以编辑这个或贡献更好的答案。
- d3.layout.stack()没有函数.sort,而是有.values而不是.value
- 用d3.json加载.geojson文件
- 您有.append(text),应该是.append
- 如果你只是想创建条形图,那么我认为不需要堆栈布局