对于我的图表数据源,我正在调用Web服务,将响应解析为数组,然后尝试在addSeries中使用该数组。数据确实会添加到我的图表中,而不是折线图,它只显示点和标签(尽管数据系列设置在' line')。我很好奇为什么这条线没有被渲染。
以下是从我的网络服务返回的数据示例。
Time,Summary
9/2/2015 12:00:00 AM,209
9/2/2015 12:15:00 AM,207
9/2/2015 12:30:00 AM,196
9/2/2015 12:45:00 AM,200
9/2/2015 1:00:00 AM,202
9/2/2015 1:15:00 AM,208
9/2/2015 1:30:00 AM,208
9/2/2015 1:45:00 AM,206
9/2/2015 2:00:00 AM,211
9/2/2015 2:15:00 AM,220
9/2/2015 2:30:00 AM,203
9/2/2015 2:45:00 AM,202
9/2/2015 3:00:00 AM,210
9/2/2015 3:15:00 AM,205
9/2/2015 3:30:00 AM,209
9/2/2015 3:45:00 AM,207
9/2/2015 4:00:00 AM,210
9/2/2015 4:15:00 AM,198
9/2/2015 4:30:00 AM,210
9/2/2015 4:45:00 AM,205
9/2/2015 5:00:00 AM,212
9/2/2015 5:15:00 AM,203
9/2/2015 5:30:00 AM,197
9/2/2015 5:45:00 AM,203
9/2/2015 6:00:00 AM,211
9/2/2015 6:15:00 AM,256
9/2/2015 6:30:00 AM,235
9/2/2015 6:45:00 AM,214
9/2/2015 7:00:00 AM,201
9/2/2015 7:15:00 AM,205
9/2/2015 7:30:00 AM,198
9/2/2015 7:45:00 AM,215
9/2/2015 8:00:00 AM,195
9/2/2015 8:15:00 AM,197
9/2/2015 8:30:00 AM,195
9/2/2015 8:45:00 AM,191
9/2/2015 9:00:00 AM,203
9/2/2015 9:15:00 AM,211
我在这里调用Web服务并解析csv数据。
var dataSeries = [];
$.get('GetMyData',{}, function (csv) {
var lines = csv.split('\n');
$.each(lines, function (lineNo, line) {
var items = line.split(',');
if (lineNo !== 0) {
var x = +new Date(items[0]),
summary = parseInt(items[1]);
dataSeries.push([x, summary]);
}
});
这是我设置和渲染图表的地方。
var options = {
chart: {
backgroundColor: '#f6f6f6',
renderTo: 'chart' + chartNum
},
xAxis: {
title: {
text: 'Hour'
},
type: 'datetime',
dateTimeLabelFormats: {
day: '%b %e %l:%M %P',
hour: '%l:%M %P'
},
},
yAxis: {
title: {
text: 'Average Whatever'
},
min: 0,
},
plotOptions: {
series: {
dataLabels: {
enabled: true
}
}
},
series: []
};
var chart = new Highcharts.Chart(options);
chart.addSeries({
name: 'Summaries',
data: dataSeries,
type: 'line',
marker: { enabled: true }
});
我的图表最终看起来像这样:
答案 0 :(得分:0)
问题是Web服务返回的数据末尾有换行符。我添加了一个检查空行的条件,一切都很顺利。
if ((lineNo !== 0)&&(line != "")) {
..parse data into array
}