您无法只加载更大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