2014-03-03 285 views
0

我正在使用数据映射并希望能够从csv文件读取数据。将csv读取到d3对象的对象[数据映射]

该数据地图期待的数据格式如下:

var loadeddata = { 
    "JPN":{Rate:17.5,fillKey:"firstCat"}, 
    "DNK":{Rate:16.6,fillKey:"secondCat"} 
    }; 

我想阅读下列结构的CSV文件,并将其转换成数据地图期待的格式:

ISO, Rate, fillKey 
JPN, 17.5, firstCat 
DNK, 16.6, secondCat 

我的“最好的企图”用下面的代码:

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

但这种合作de生成如下所示的变量'csvloadeddata':

var csvloadeddata = [ 
     {"key": "JPN", "values": { 0: {Rate:17.5, fillKey:"firstCat"}} }, 
     {"key": "DNK", values : { 1: {Rate:16.6,fillKey:"secondCat"}} } 
    ]; 

我在做什么错了?

+0

高兴你理解了它。你可以发布你的解决方案作为答案(一旦系统允许你接受它),所以这显示为一个回答问题? – AmeliaBR

+0

谢谢你告诉我!就这样做了! – user2656065

回答

0

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

<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结构如下:

ISO,fillKey 
RUS,AA 
USA,BB 

这里是一个工作示例:http://www.explainingprogress.com/wp-content/uploads/datamaps/uploaded_gdpPerCapita2011_PWTrgdpe/gdpPerCapita2011_PWTrgdpe.html