我在理解 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)据我所知,我需要读取文件而不解析它,然后将文本字符串连接到文件的开头,最后解析数据。
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 …