您無法只加載更大CSV的2列,但可以加載整個事物並提取所需的列。
說你的CSV是這樣的:
col1,col2,col3,col4
aaa1,aaa2,aaa3,aaa4
bbb1,bbb2,bbb3,bbb4
ccc1,ccc2,ccc3,ccc4
而且你
csv('my.csv', function(err, data) {
console.log(data)
/*
output:
[
{ col1:'aaa1', col2:'aaa2', col3:'aaa3', col4:'aaa4' },
{ col1:'bbb1', col2:'bbb2', col3:'bbb3', col4:'bbb4' },
{ col1:'ccc1', col2:'ccc2', col3:'ccc3', col4:'ccc4' }
]
*/
})
加載它,如果你只是想col2
和col3
(你不想簡單地離開其他列'數據在那裏,這不應該是一個問題無論如何),你可以這樣做:
var cols2and3 = data.map(function(d) {
return {
col2: d.col2
col3: d.col3
}
});
console.log(cols2and3)
/*
output:
[
{ col2:'aaa2', col3:'aaa3' },
{ col2:'bbb2', col3:'bbb3' },
{ col2:'ccc2', col3:'ccc3' }
]
*/
I.e.上面的代碼產生了一個新的對象數組,每個對象只有兩個道具。
如果你只想每列值的數組 - 而不是對象與兩列的價值觀 - 你可以:
var col2data = data.map(function(d) { return d.col2 }
var col3data = data.map(function(d) { return d.col3 }
console.log(col2) // outputs: ['aaa2', 'bbb2', 'ccc2']
你爲什麼不乾脆每個屬性映射? –
你能分享一下你到目前爲止嘗試過的一些代碼嗎?請記住,在將數據結構提供給d3之前,您可以操作數據結構,如果這樣可以在繪製可視化文件時更輕鬆地進行處理 – Nobita