2013-10-25 3 views
0

В настоящее время я работаю с dc.js, crossfilter.js и d3.js для визуализации некоторых визуализаций. Я наткнулся на сообщение, похожее на то, что я искал здесь Crossfilter query и здесь d3 csv data loading.
d3.csv данные карты как массив

Что я пытаюсь сделать, это разобрать мой csv, а для определенного столбца проанализировать его как массив внутри каждой строки объекта. например, у меня есть:

моих данных в настоящее время выходит как:

[
{FY: 2011, PROJ_NAME: "Проект 1", категория: "фрукты", подкатегория: «клубника, манго «Всего: 100»,
{FY: 2011, proj_name: ", проект 2 », категория:« растительный », подкатегория:« сельдерей », всего: 100}
]

, но я ищу для форматирования данных, как так:

[
{FY: 2011, PROJ_NAME: "Проект 1", категория: "фрукты", подкатегория: [ "клубника", "манго" ], всего: 1510},
{FY: 2011, proj_name: "project 1", категория: "фрукты", подкатегория: ["orange", "mango"], всего: 100},
{FY: 2011 , 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(/,/) 
    }; 
}); 
Смежные вопросы