【发布时间】:2018-07-10 21:19:17
【问题描述】:
我在理解 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;
格式在哪里:
%Y%m%d %H%M%S;number1;number2;number3;number4;number5;
我的困难是:
- 向数据添加标头
- 使用分号而不是逗号作为分隔符
1) 据我所知,我需要在不解析的情况下读取文件,然后将文本字符串连接到文件的开头,然后最后解析数据。
d3.text(data.csv, function(error, textString){});
var headers = ["date","time","data1","data2"].join("\t");
d3.csv.parse(headers + textString);
2) 我可以使用 dsv 格式并将分隔符设置为分号吗?
d3.dsv(";", "text/plain")
我最终得到的粗略代码是:
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);
})
})
理想情况下,我希望数据在记录时看起来像这样:
Time, Number1, Number2, Number3, Number4, Number5
00:00, 1.168200, 1.168240, 1.168140, 1.168230, 0
etc
我的想法有什么缺陷,有人可以就如何解决我的问题和将来的类似问题提供建议吗?
注意:我是 Javascript 和 d3 的新手,虽然我已经能够毫无问题地完成大部分涉及绘制 svg、创建轴和比例、过渡等的文档,但我很难真正理解来自真实来源(例如互联网)的数据并将它们处理成可行的东西。请严厉批评我所说的任何内容并提供建议,我想学习。
【问题讨论】:
标签: javascript d3.js fetch-api import-from-csv