2013-10-25 98 views
0

我目前正在使用dc.js,crossfilter.js和d3.js来渲染一些可视化文件。我遇到过一篇类似于我在这里寻找的帖子Crossfilter query和这里d3 csv data loading
d3.csv将数据映射为数组

我打算做的是解析我的csv,并且对于某个列,将其解析为每个对象行中的数组。举例来说,我有:

我的数据目前出来的:

[
{FY:2011年,PROJ_NAME: “项目1”,类别: “果”,子类:“草莓,芒果{FY:2011,proj_name:“project 2”,category:“fruit”,subcategory:“orange,mango”,total:100},
{FY:2011,proj_name:“项目2“,类别:”蔬菜“,子类别:”芹菜“,总数:100}
]

但我正在寻找的数据格式等等:

[
{FY:2011年,PROJ_NAME: “项目1”,类别: “果”,子类: “草莓”, “芒果” {FY:2011,proj_name:“project 1”,category:“fruit”,subcategory:[“orange”,“mango”],total:100},
{FY:2011年,总计:1510},
,PROJ_NAME: “项目1”,类别: “蔬菜”,子类: “芹菜”],共计:100}
]

这是不是我可以只是把data.forEach(函数(d) )?

d3.csv("data.csv", function(data) { 
    data.forEach(function (d) { 
     d.FY = +d.FY; 
     d.total = +d.total; 
     d.subcategory = d.subcategory.split(/,/); 
     }) 
    }) 

我不认为是正确的,它根本不工作,但什么我得到在这里要说的是它的东西,需要被重复此列中专门做了,这样我可以斗子类别作为标签后面..任何想法/反馈?

提前很多感谢

回答

2

D3已经有这个覆盖,d3.csv格式为:d3.csv(url[, accessor][, callback])这里访问是呼吁在CSV每行转换数据的功能。试试这个:

d3.csv("data.csv", function(d) { 
    return { 
    FY: +d.FY, 
    total: +d.total, 
    category: d.category, 
    subcategory: d.subcategory.split(/,/) 
    }; 
});