小编Nei*_*ilC的帖子

使用分号分隔符且没有标题来获取和处理数据

我在理解 D3.JS 获取文档时遇到了一些困难:

我的数据源是:

20180601 000000;1.168200;1.168240;1.168140;1.168230;0;
20180601 000100;1.168220;1.168230;1.168190;1.168190;0;
20180601 000200;1.168180;1.168180;1.168080;1.168120;0;
20180601 000300;1.168130;1.168160;1.168130;1.168140;0;
Run Code Online (Sandbox Code Playgroud)

其中格式为:

%Y%m%d %H%M%S;number1;number2;number3;number4;number5;
Run Code Online (Sandbox Code Playgroud)

我的困难是:

  1. 向数据添加标头
  2. 使用分号而不是逗号作为分隔符

1)据我所知,我需要读取文件而不解析它,然后将文本字符串连接到文件的开头,最后解析数据。

d3.text(data.csv, function(error, textString){});

var headers = ["date","time","data1","data2"].join("\t");

d3.csv.parse(headers + textString);
Run Code Online (Sandbox Code Playgroud)

2)我可以使用dsv格式并将分隔符设置为分号吗?

d3.dsv(";", "text/plain")
Run Code Online (Sandbox Code Playgroud)

我最终得到的粗略代码是:

var time_parse = d3.timeParse( '%Y%m%d %H%M%S');
var time_format = d3.timeFormat('%H%M');

d3.text(data.csv, function(error, textString){

var headers = ["time;number1;number2;number3;number4;number5;"].join("\t")

d3.csv.parse(headers + textString)

d3.dsv(";", "text/plain")

data.forEach(function(e,i){
    data[i].time = time_parse(e.date);
})

})
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望记录时的数据如下所示:

Time, Number1, Number2, Number3, Number4, Number5
00:00, 1.168200, 1.168240, 1.168140, 1.168230, 0
etc
Run Code Online (Sandbox Code Playgroud)

我的想法有什么缺陷,有人可以就如何解决我的问题和未来类似的问题提供建议吗?

注意:我是 Javascript 和 d3 …

javascript import-from-csv d3.js fetch-api

5
推荐指数
1
解决办法
1094
查看次数

标签 统计

d3.js ×1

fetch-api ×1

import-from-csv ×1

javascript ×1