首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将csv读入d3 [datamaps]的对象对象

将csv读入d3 [datamaps]的对象对象
EN

Stack Overflow用户
提问于 2014-03-03 10:37:03
回答 1查看 612关注 0票数 0

我正在使用数据and,并且希望能够从csv文件中读取数据。

数据format所期望的数据格式如下:

代码语言:javascript
复制
var loadeddata = {
    "JPN":{Rate:17.5,fillKey:"firstCat"},
    "DNK":{Rate:16.6,fillKey:"secondCat"}
    };

我希望读取具有以下结构的csv文件,并将其转换为datamaps所期望的格式:

代码语言:javascript
复制
ISO, Rate, fillKey
JPN, 17.5, firstCat
DNK, 16.6, secondCat

我的“最佳尝试”是使用以下代码:

代码语言:javascript
复制
var csvloadeddata;

d3.csv("simpledata.csv", function (error, csv) {
  if (error) return console.log("there was an error loading the csv: " + error);
  console.log("there are " + csv.length + " elements in my csv set");

  var nestFunction = d3.nest().key(function(d){return d.ISO;});

  csvloadeddata = nestFunction.entries(
                      csv.map(function(d){ 
                                     d.Rate = +d.Rate;  
                                     d.fillKey = d.fillKey;  
                                     return d;  
                                 })
                    ); 
  console.log("there are " + csvloadeddata.length + " elements in my data");
});

但是,这段代码生成的变量“csvloadeddata”如下所示:

代码语言:javascript
复制
var csvloadeddata =  [
      {"key": "JPN", "values": { 0: {Rate:17.5, fillKey:"firstCat"}} },
      {"key": "DNK",  values : { 1: {Rate:16.6,fillKey:"secondCat"}} }
    ];

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-06 18:10:12

我自己找到了答案。如果有人感兴趣-这就是我最后使用的:

代码语言:javascript
复制
<script>  
d3.csv("simpledata.csv", function(error, csvdata1) {

    globalcsvdata1 = csvdata1;

    for (var i=0;i<csvdata1.length;i++)
        { 
                globalcsvdata1[ globalcsvdata1[i].ISO] = globalcsvdata1[i] ;
                //console.log(globalcsvdata1[i]);
                delete  globalcsvdata1[i].ISO;
                delete  globalcsvdata1[i] ;
            }
myMap.updateChoropleth(globalcsvdata1);

}

);



var myMap = new Datamap({
    element: document.getElementById('map'),
    scope: 'world',
    geographyConfig: {
        popupOnHover: true,
        highlightOnHover: false
    },
    fills: {
        'AA': '#1f77b4',
        'BB': '#9467bd',
        defaultFill: 'grey'
    }


});



     </script>
</body>

csv的结构如下:

代码语言:javascript
复制
ISO,fillKey
RUS,AA
USA,BB

下面是一个有用的示例:PWTrgdpe.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22144458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档