Javascript 带系列日期/时间的海图
上面是HighCHarts的JSON数据,我需要将X轴设置为日期/时间,Y轴设置为状态。JSON被生成并附加到series属性,并按如下方式使用:这根本不是打印Javascript 带系列日期/时间的海图,javascript,json,highcharts,Javascript,Json,Highcharts,上面是HighCHarts的JSON数据,我需要将X轴设置为日期/时间,Y轴设置为状态。JSON被生成并附加到series属性,并按如下方式使用:这根本不是打印 [{"name":"M3","data":[["2014-04-16 23:03:59","0"],["2014-04-15 17:48:37","0"],["2014-04-15 17:43:16","1"],["2014-04-15 17:42:52","0"],["2014-04-15 17:36:19","1"],["2014-
[{"name":"M3","data":[["2014-04-16 23:03:59","0"],["2014-04-15 17:48:37","0"],["2014-04-15 17:43:16","1"],["2014-04-15 17:42:52","0"],["2014-04-15 17:36:19","1"],["2014-04-15 17:35:43","0"],["2014-04-15 17:35:31","0"],["2014-04-15 17:30:22","0"],["2014-04-15 17:27:47","1"],["2014-04-15 17:26:00","1"],["2014-04-15 17:19:28","1"],["2014-04-15 17:00:26","0"],["2014-04-15 16:53:18","0"]]},{"name":"M2","data":[["2014-04-16 23:03:47","0"],["2014-04-15 17:47:25","0"],["2014-04-15 17:33:20","1"],["2014-04-15 17:30:10","0"],["2014-04-15 16:57:51","0"]]},{"name":"M1","data":[["2014-04-15 17:47:37","0"],["2014-04-15 17:45:15","0"]]}]
var handlerURL=”http://localhost:50687/Handler.ashx?";
$.ajax({
url:handlerURL,
键入:“获取”,
数据类型:“json”,
contentType:'应用程序/json',
完成:函数(json){
jsonData=json.responseText;警报(jsonData);
}
});
选项={
图表:{
renderTo:'容器',
类型:“样条线”,
marginRight:130,
marginBottom:50
},
设置选项:({
全局:{useUTC:true}
}),
标题:{
文本:“实时数据”,
x:-20
},
副标题:{
文本:“”,
x:-30
},
xAxis:{
键入:“日期时间”,
像素间隔:100,
绘图线:[{
宽度:5,
颜色:'#808080'
}]
},
亚克斯:{
最小值:0,最大值:1,
标题:{
文本:“状态”
},
绘图线:[{
值:0,
宽度:1,
颜色:'#808080'
}]
},
工具提示:{
格式化程序:函数(){
返回“+this.series.name+”
+
this.x+':'+this.y;
}
},
图例:{
布局:“垂直”,
对齐:“右”,
垂直排列:“顶部”,
x:-10,
y:100,
边框宽度:0
},
系列:[]
}
options.series=jsonData;
图表=新的高点图表。图表(选项);
});
您可能会从中得到一些帮助。谢谢Rob,我的JSON包含日期和状态的字符串数据。这是因为在后端,它的格式是这样的。我相信Highchart我无法识别sameCool,将字符串解析为日期对象是非常困难的。不要将其留给浏览器,因为有些人会将没有时区的字符串视为UTC,而其他人则视为本地字符串(并且您提供的字符串并不严格符合ES5,尽管它足够接近,大多数浏览器都会处理它,但少数浏览器不会)。尝试了转换,但图表出现空白。您如何覆盖,有没有实时演示?
var handlerURL = "http://localhost:50687/Handler.ashx?";
$.ajax({
url: handlerURL,
type: "GET",
datatype: "json",
contentType: 'application/json',
complete: function (json) {
jsonData = json.responseText; alert(jsonData);
}
});
options = {
chart: {
renderTo: 'container',
type: 'spline',
marginRight: 130,
marginBottom: 50
},
setOptions: ({
global: { useUTC: true }
}),
title: {
text: 'Live Data',
x: -20
},
subtitle: {
text: '',
x: -30
},
xAxis: {
type: 'datetime',
tickPixelInterval: 100,
plotLines: [{
width: 5,
color: '#808080'
}]
},
yAxis: {
min: 0, max: 1,
title: {
text: 'Status'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function () {
return '<b>' + this.series.name + '</b><br/>' +
this.x + ': ' + this.y;
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: []
}
options.series = jsonData;
chart = new Highcharts.Chart(options);
});