2013-10-30 27 views
0

我有以下CSV文件:装载CSV到nvd3使离散条形图

Fun,Stupid,Yes,No 
50,-20,100,70 

我想将其加载到nvd3使离散的柱状图。我知道这很容易,但它让我长时间操纵数据。

我已经试过如下:

d3.csv("/path/to/file", function(data){ 
       console.log(data); 
       }); 

,我得到以下对象未与nvd3工作:

[{Fun:50, Stupid: -20, Yes: 100, No: 70}] 

感谢。

回答

3

nvd3期待一个相当具体的数据表单,因此您需要将数据转换为该表单。它期待的形式是:

[ 
    { 
     key: "totals", 
     values: [] 
    } 
]; 

当空数组从d3.csv充满了对象,并注意NV是期待你的对象的数组名被称为

所以第一步是创建一个空的对象是这样的:

var exampleData = [ 
    { 
     key: "totals", 
     values: [] 
    } 
]; 

然后与您的数据填充它:

data.forEach(function (d){ 
    d.value = +d.value 
    exampleData[0].values.push(d) 
})  

这一切都需要在您的通话d3.csv里面。

要使用此格式,您需要在您的CSV文件中另一个类似组织成列在一列你的名字和你的价值观:

标签,值

娱乐,50

愚蠢,-20

这里是链接到working example