这是我的JSON:
[{"name":"AniSig01",
"data":[["2013,06,11,16,06,55",14],
["2013,06,11,16,07,00",14],
["2013,06,11,16,07,06",15],
["2013,06,11,16,07,11",14]]},
{"name":"AniSig02",
"data":[["2013,06,11,16,06,55",0],
["2013,06,11,16,07,00",0],
["2013,06,11,16,07,06",0],
["2013,06,11,16,07,11",0]]},
{"name":"AniSig03",
"data":[["2013,06,11,16,06,55",6],
["2013,06,11,16,07,00",6],
["2013,06,11,16,07,06",7],
["2013,06,11,16,07,11",6]]},
{"name":"AniSig04",
"data":[["2013,06,11,16,06,55",13],
["2013,06,11,16,07,00",13],
["2013,06,11,16,07,06",14],
["2013,06,11,16,07,11",13]]}]
我的HighCharts代码:
$(document).ready(function()
{
var options =
{
chart:
{
renderTo: 'container',
type: 'spline',
},
title:
{
text: 'Statistik',
},
xAxis:
{
type:'datetime',
},
yAxis:
{
title: { text: ''},
},
tooltip:
{
shared: true,
crosshairs: true,
},
plotOptions:
{
series:
{
marker: {enabled: false},
animation: false,
threshold: null
}
},
series:[]
};
$.getJSON('datgen/DatReq.txt',function(data)
{
$.each(data, function(key,value)
{
var series = { data:[]};
$.each(value, function(key,val)
{
if (key == 'name')
{
series.name = val;
}
else
{
$.each(val, function(key,val)
{
val[0] = 'Date.UTC(' + val[0] + ')';
series.data.push(val[0], val[1]);
});
}
});
options.series.push(value);
});
var linechart = new Highcharts.Chart(options);
});
});
但我认为这4个信号仅作为图表上的一个点(垂直线)。 并且工具提示没有显示正确的时间(x值)!
有谁知道问题是什么?
答案 0 :(得分:3)
正如您所发现的那样,您的X值是错误的。它们不仅错误(根据工具提示),但它们似乎是每个点的相同错误(给你一条垂直线)。
所以,让我们专注于X值。这些是什么?好的,时间。在某些时候,您必须将数据源中的时间解析为Javascript。你是哪里做的?
下面:
val[0] = 'Date.UTC(' + val[0] + ')';
我们去了 - Javascript函数根本不起作用。你不能只将代码推入一个字符串并期望它被执行。
在逗号字符上拆分val[0]
,并将结果的每个部分都输入到Date.UTC
的真实调用中。