Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Choropleth替代方法及更多_Javascript_Json_D3.js - Fatal编程技术网

Javascript Choropleth替代方法及更多

Javascript Choropleth替代方法及更多,javascript,json,d3.js,Javascript,Json,D3.js,在我之前的和中,我在绘制地图时解决了choropleth地图/图例问题+绘制圆圈问题 当我关注choropleth的这一点时,当我在互联网上搜索时,我总是发现同样的逻辑 d3.csv(“my.csv”,函数(数据){ d3.json(myjson,函数(json){ 对于(变量i=0;i我可以有5个存储/路径,例如 以下是我的问题: 1) 如何以不同的方式编写choropleth代码==>我想扫描csv文件,并为每个不同的路径返回特定属性的总和(此处为“income”),以便将其写入json文件

在我之前的和中,我在绘制地图时解决了choropleth地图/图例问题+绘制圆圈问题

当我关注choropleth的这一点时,当我在互联网上搜索时,我总是发现同样的逻辑

d3.csv(“my.csv”,函数(数据){

d3.json(myjson,函数(json){

对于(变量i=0;i
//获取状态名称
var dataState=data[i].nom;
//抓取数据值,并从字符串转换为浮点值
var dataValue=数据[i]。总体;
//在GeoJSON中查找相应的状态
for(var j=0;j
所以在我的例子中,我有一个75路径的地图(1路径=区域),我的csv文件有75行(1行=1路径)

现在我试着做一些不同的事情

我的新csv有N行(N>75,假设200),每行一个存储(properties+lat+lon)受路径影响==>我可以有5个存储/路径,例如

以下是我的问题:

1) 如何以不同的方式编写choropleth代码==>我想扫描csv文件,并为每个不同的路径返回特定属性的总和(此处为“income”),以便将其写入json文件

2) 当我点击一个特定的区域/路径时,我想在一个新的div(在我的例子中是#output)上显示与我的区域对应的json文件(基本上我有75个json文件“region1.json”、“region2.json”等等…),里面有圆圈(一个圆圈=一个存储,在我的csv文件“name”列中”)==>我如何检索这个“点击值”并调用正确/对应的json文件

3) 最后,如果我点击显示的“输出div”的特定圆圈,我想在第三个div上有一个图表==>如何正确写入我的第三个div以使其正确显示(css,其他???==>它也可以应用到“输出”

非常感谢您阅读此请求以及您的可用性和帮助

下面是(不要介意sales.csv文件,我只是用它来尝试在单击路径时显示一些内容


再次感谢您

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);
});
更多信息

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);
});