2013-10-25 124 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(/,/) 
    }; 
});