我尝试了这个编码,但我没有在图表中找到任何一行,请告诉我我错在哪里。
$(document).ready(function() {
var options = {
chart: {
renderTo:'container',
zoomType:'xy'
},
title: {
text: 'Oviedo hoy'
},
subtitle: {
text: 'datos:'
},
xAxis:{
labels:{
formatter:function(){
return Highcharts.dateFormat('%H:%M:%S',this.value);
}
}
},
series: []
};
$.get('data.csv', function(data) {
// Split the lines
options.series.push({
data:[]
});
var tmptimestamp = '';
var lines = data.split('\n');
$.each(lines, function(lineNo, line) {
var items = line.split(',');
// header line containes categories
if (lineNo > 0 )
{
//parsing
var datestamp = items[0].split(' '),
date = datestamp[0].split('/'),
time = datestamp[1].split(':'),
timestamp = Date.UTC(parseFloat(date[2]),
parseFloat(date[1]),parseFloat(date[0]),parseFloat(time[0]),
parseFloat(time[1]),parseFloat(time[2]));
if(tmptimestamp != timestamp)
{
options.series[0].data.push({
x:timestamp,
y:parseFloat(items[5])
});
tmptimestamp = timestamp;
}
}
});
var chart = new Highcharts.StockChart(options,function(chart){
console.log(chart);
});
});
});
这是我的csv的一小部分,但实际文件真的很长,像18,000行和17列。
Time Tcoll Tstor TglyHXin
01/01/2013 12:00:54 AM 103.34 103.32 26.94
01/01/2013 12:01:55 AM 103.29 103.3 26.94
01/01/2013 12:02:55 AM 103.29 103.33 26.95
01/01/2013 12:03:55 AM 103.29 103.03 26.94
01/01/2013 12:04:55 AM 103.34 103.27 26.94
01/01/2013 12:05:55 AM 103.39 103.33 26.94
01/01/2013 12:06:55 AM 103.3 103.01 26.94
01/01/2013 12:07:55 AM 103.42 103.17 26.94
01/01/2013 12:08:55 AM 103.37 103.16 26.94
01/01/2013 12:09:55 AM 103.34 103.28 26.94
我不知道我哪里出错了。请告诉我如何在图表中找到该行。
提前致谢,期待您的帮助。
答案 0 :(得分:0)
将turboThreshold
设置为更高的值(请参阅docs)或更改为:
options.series[0].data.push({
x:timestamp,
y:parseFloat(items[5])
});
为:
options.series[0].data.push([
timestamp,
parseFloat(items[5])
]);
关于错误的日期: 月份从0开始,而不是从1开始,所以更改:
timestamp = Date.UTC(parseFloat(date[2]),
parseFloat(date[1]),parseFloat(date[0]),parseFloat(time[0]),
parseFloat(time[1]),parseFloat(time[2]));
为:
timestamp = Date.UTC(parseFloat(date[2]),
parseFloat(date[1]) - 1,parseFloat(date[0]),parseFloat(time[0]),
parseFloat(time[1]),parseFloat(time[2]));