【发布时间】:2014-01-28 15:16:49
【问题描述】:
我正在高图中绘制 Csv 列数据。而不是:
$.get('5.csv', function(data)
我想使用以下方法输入本地桌面 Csv 文件:
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object
我当前的 Javascript 代码如下:
var options = {
chart: {
renderTo: 'container',
defaultSeriesType: 'line'
},
title: {
text: 'Test'
},
xAxis: {
categories: []
},
yAxis: {
title: {
text: 'Units',
}
},
series: []
};
// $.get('5.csv', function(data) {
var file = event.target.file;
var reader = new FileReader();
var txt=reader.readAsText(file);
var lines = txt.split('\n');
var c = [], d = [];
$.each(lines, function(lineNo, line) {
if(lineNo > 0 ){
var items = line.split(',');
var strTemp = items[0];
c = [parseFloat(items[0]), parseFloat(items[1])];
d.push(c);
console.log(c);
}
});
options.xAxis.categories = c;
options.series = [{
data: d
}];
chart = new Highcharts.Chart(options);
});
我该怎么做呢?我想从本地台式机上传一个 Csv 文件。如何将文件的文件阅读器上传链接到 highcharts 进行绘图,而不是使用 $.get(5.csv', function(data) { ?或者我最好使用 jquery-csv (https://github.com/evanplaice/jquery-csv)。我知道存在浏览器安全问题。我的文件是一个 3 列 Csv,带有一行标题,第 1 列是 x 轴,2 是 y 轴,3 将是错误栏,我还没有实现:
Q,I,E
0.009,2.40E-01,5.67E-02
0.011,2.13E-01,3.83E-02
0.013,2.82E-01,2.28E-02
等等……
【问题讨论】:
-
我不明白你的问题。你的图表工作正常吗?
-
"我要输入本地的 csv 文件",什么是本地 csv 文件?这是客户端上的 csv 文件吗?您是否希望使用 HTML5 FileReader (developer.mozilla.org/en-US/docs/Web/API/FileReader)?
-
您的 CSV 文件长什么样?
-
在您的示例中,您推送到带有点 [0.009,2.40E-01] 的类别数组,在 categoreis 中应该是单个值而不是对的数组。对可以在序列数据中使用,就像你一样(这部分是正确的)
-
明白,塞巴斯蒂安。是的,我想使用 FileReader 或类似的东西来获取文件。
标签: javascript csv highcharts