我已经为此工作了好几个小时,无法解决,如果有人可以提供帮助,我将不胜感激。
$(function() {
$(document).ready(function() {
Highcharts.setOptions({
global: {
useUTC: false
}
});
var chart;
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'line',
marginRight: 10,
events: {
load: function() {
// set up the updating of the chart each second
var series = this.series[0];
setInterval(function() {
var x = (new Date()).getTime(),
// current time
y = Math.random();
series.addPoint([x, y], true, true);
}, 1000);
}
}
},
title: {
text: 'Live random data'
},
xAxis: {
type: 'datetime' ,
tickPixelInterval: 150
},
yAxis: {
max: 400,
min: 0,
plotLines: [{
value: 200,
width: 1,
color: '#ccc',
}]
},
tooltip: {
enabled: false
},
legend: {
enabled: false
},
exporting: {
enabled: false
},
series: [{
name: 'Random data',
data: (function() {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = -19; i <=0; i++) {
data.push({
x: time + i * 1000,
y: time + 4 * 50
});
}
return data;
})()}]
});
});
});
这是我想做的事情:
我希望从00:00开始并以5秒为增量运行,而不是xAxis上的当前时间。
我也想让Y值具有随机数,不确定为什么它不起作用
最后,我想从另一个元素中获取价值,并相应地在图形上绘制一条水平线。
感谢您的光临...
最佳答案
1-保留秒数(i
)的运行计数器,并使用setHours()
设置小时,分钟,秒和毫秒...但是,您真正关心的唯一一个是秒。
var i = 0;
setInterval(function() {
var x = (new Date((new Date()).setHours(0,0,i,0)).getTime()),
y = Math.random()*400;
series.addPoint([x, y], true, true);
i++;
}, 1000);
2-将
Math.random()
乘以某个值(例如您的max y值)。Math.random()
:返回范围为[0,1)的浮点伪随机数
即从0(含)到但不包括1(不含),
然后您可以缩放到所需范围。
3-请问您是否对所要查找的内容不太清楚?
EXAMPLE