如何跳过或忽略标题上方的行?

问题描述 投票:3回答:1
Title: This is parsed file      
Job: Proj Doom

Flow,Value  
102,2   
103,3   
104,4   
105,5   
106,6

我是新来的D3。如果我采用上面的csv并删除标题上方的所有内容,我的d3图表工作正常。 csv是在测试之后产生的,我不能通过每个文件并删除标题上方的行,然后加载到D3图表。我想抓住这些文件并在不修改的情况下将其可视化。

所以,我唯一的问题是如何过滤掉前5行。标题上方的行数在生成的所有* .csv中相同,内容可能会更改。

可以在d3.csv("myCsv", type, function(){});内完成吗?或者它需要在js之前完成?我正在使用d3 v4。

javascript csv d3.js rows
1个回答
3
投票

使用type函数(更好地称为row函数)的问题是它将被调用所有行。那不是你想要的。

这里最好的想法可能是将CSV加载为纯文本。在第5版:

d3.text("data.csv").then(function(data){

在第4节:

d3.text("data.csv", function(data){

...然后我们删除第一行。在这里,我删除前3行:

const filtered = data.split('\n').slice(3);

然后,我们重新创建CSV文件:

const newCSV = filtered.join('\n');

最后我们解析它:

const newData = d3.csvParse(newCSV);

顺便说一句,d3.csvParse适用于v4和v5。

当然,所有这一切只需一行即可:

data = d3.csvParse(data.split('\n').slice(3).join('\n')) 

这是一个显示它的bl.ocks(使用v5):https://bl.ocks.org/GerardoFurtado/5a43fdcedc214ecdb2eb20ac91af8623/6473eb3dfb05361a3dd7972756a490d9885542f5

© www.soinside.com 2019 - 2024. All rights reserved.