在我之前的post1和post2中,我设法在绘制地图时修复了等值线图/图例问题+绘制圆圈问题。
当我关注这个must-do tutorial关于等值时,当我在互联网上搜索时,我总能找到相同的逻辑
d3.csv(" my.csv",function(data){
d3.json(myjson,function(json){
for(var i = 0; i< data.length; i ++){
//Grab state name var dataState = data[i].nom; //Grab data value, and convert from string to float var dataValue = data[i].population; //Find the corresponding state inside the GeoJSON for (var j = 0; j < json.features.length; j++) { var jsonState = json.features[j].properties.nom; if (dataState == jsonState) { //Copy the data value into the JSON json.features[j].properties.CA = dataValue; //Stop looking through the JSON break; } } }
所以在我的情况下,我有一个75路径的地图(1路径=区域),我的csv文件有75行(1行= 1路径)
现在我试图做一些不同的事情
我的新csv有N行(N> 75,让我们说200),对于每一行,商店(属性+ lat + lon)会受到路径影响==&gt;我可以有5个商店/路径,例如
以下是我的问题:
1)我如何以不同方式编写我的合唱代码==&gt;我想扫描csv文件并为每个不同的路径返回特定属性的总和(这里是#34; income&#34;),以便将它写在我的json文件上???
2)当我点击特定的区域/路径时,我想在新的div(在我的情况下是#output)上显示与我的区域相对应的json文件(基本上我有75个json文件&# 34; region1.json&#34;,&#34; region2.json&#34;等等......&#34;)里面有圆圈(一个圆圈=一个商店,在我的csv文件中#34;名称&# 34;列&#34;)==&gt;我如何检索这个&#34;点击价值&#34;并调用正确/对应的json文件????
3)最后,如果我点击#output div的显示特定圈子,我想在第三个div上有一个图表==&gt;我如何正确写入我的第3个div以便正确显示(css,其他?? ==&gt;它也可以应用于#output)??
非常感谢您阅读此请求以及您的可用性和帮助
这里是plunker file(不介意sales.csv文件,我只是用它来尝试在点击路径时显示内容
再次感谢
答案 0 :(得分:0)
d3 nest roll up是解决方案
d3.csv("source-data.csv", function(error, csv_data) {
var data = d3.nest()
.key(function(d) { return d.date;})
.rollup(function(d) {
return d3.sum(d, function(g) {return g.value; });
}).entries(csv_data);
});
更多信息here