Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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 d3使用d3.map和d3 queue()函数读取csv_Javascript_Csv_D3.js_Mapping - Fatal编程技术网

Javascript d3使用d3.map和d3 queue()函数读取csv

Javascript d3使用d3.map和d3 queue()函数读取csv,javascript,csv,d3.js,mapping,Javascript,Csv,D3.js,Mapping,我想映射到每个省的数据城市 这是我的示例csv数据。(又称“city.csv”) 绘制完地图后,我想得到省里所有的资料。 例如,如果我输入值'ProvinceA',返回'370451','370452',等等 首先,我必须读取这样的数据 var popByProvinceName = d3.map() queue() .defer(d3.json, "municipalities.json") .defer(d3.csv, "city.csv", function(d) { d

我想映射到每个省的数据城市

这是我的示例csv数据。(又称“city.csv”)

绘制完地图后,我想得到省里所有的资料。 例如,如果我输入值'ProvinceA',返回'370451','370452',等等

首先,我必须读取这样的数据

var popByProvinceName = d3.map()

queue()
  .defer(d3.json, "municipalities.json")
  .defer(d3.csv, "city.csv", function(d) {
    d.citycode = +d.citycode;
    popByProvinceName.set(d.province, + d.citycode);
  }).await(ready);

function ready(error, data1) {
  console.log(popByProvinceName.get("ProvinceA");
}
仅返回一个省的城市代码

 3704059

我怎样才能修好它?请帮忙

每次迭代都会覆盖该值。您需要将它们推入阵列:

queue()
  //.defer(d3.json, "municipalities.json")
  .defer(d3.csv, "city.csv", function(d) {
    d.citycode = +d.citycode;
    // first time we've seen province
    if (!popByProvinceName.has(d.province)) {
      popByProvinceName.set(d.province, []);
    }
    // get the array and add to it
    popByProvinceName.get(d.province).push(d.citycode);
  }).await(ready);
满满的


另一种稍微干净一点的方法是在ready函数中使用:

function ready(error, data1) {
  var nest = d3.nest()
    .key(function(d) { return d.province; })
    .rollup(function(r){
      return r.map(function(d){
        return +d.citycode;
      });
    })
    .entries(data1);
满满的

function ready(error, data1) {
  var nest = d3.nest()
    .key(function(d) { return d.province; })
    .rollup(function(r){
      return r.map(function(d){
        return +d.citycode;
      });
    })
    .entries(data1);