highcharts - 以 1 分钟间隔生成随机数据:Highcharts
问题描述
我创建了一个样条实时图表,我想在其中定期显示点。
每个点都是一分钟后发生的事件。但是,我很难理解所有动人的部分:
我提到的 highchart 演示中的间隔函数每 1 秒更新一次,我已经达到了 6000。
javascript中的虚拟更新只需要最新时间并附加它,是否应该在那里引入一些延迟?
系列中的虚拟初始化数据有一个我无法理解的 for 循环。我知道 javascript 会生成一个 UNIX 时间戳及其毫秒操作,但是默认代码(再次从 highchart 演示中稍作修改)从 -9999 运行到 0 并乘以一个数字。
我想了解这些部分,并确保每次我的 x 轴向右“滴答”时,我都有一分钟的差距,并且在图表上只有一个点。
PS:请原谅任何遗漏的括号,它们可能在发布问题时遗漏了,但我向您保证这不是问题。
这是我的系列代码:
series: [{
type: 'spline',
name: 'Random data',
data: (function () {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = -9999; i <= 0; i += 1) {
data.push([
time + i * 60000,
Math.round(Math.random() * 100) + 10
]);
}
return data;
}())
}]
这是我的图表代码:
chart: {
events: {
load: function () {
// Set up the updating
var series = this.series[0];
setInterval(function () {
var x = (new Date()).getTime(), // current time
y = Math.round(Math.random() * 100) + 10
series.addPoint([x, y], true, true);
}, 6000);
}
}
}
解决方案
至于你的问题:
如果你想有 1 分钟的数据间隔,你需要使用
60000
value (60 * 1000),6000
毫秒为 6 秒。间隔函数中的当前日期每
6000
毫秒计算一次,这会导致数据每6000
毫秒出现一次间隔。该数据初始化取决于从当前时间戳中减去六秒的倍数:
data: (function() {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = -9999; i <= 0; i += 1) {
if (i === -500) {
console.log(time, i, 60000); // 1560941909847 + (-500 * 60000)
console.log(time + i * 60000); // 1560911909847
} else if (i === -499) {
console.log(time, i, 60000); // 1560941909847 + (-499 * 60000)
console.log(time + i * 60000); // 1560911969847
} else if (i === 0) {
console.log(time, i, 60000); // 1560941909847 + (0 * 60000)
console.log(time + i * 60000); // 1560941909847 = actual time
}
data.push([
time + i * 60000,
Math.round(Math.random() * 100) + 10
]);
}
return data;
}())
推荐阅读
- java - 如何使用 Java 中的 Mockito 在循环中模拟函数以为每次迭代返回不同的值
- arrays - 如何在laravel 6中获取foreach中的数组总和
- mongodb - 为什么 MongoDB 中的事务必须使用副本集?
- nuget - 安装时的 Nuget .symbols.package 不包含 pdb,仅安装 dll-VS 2019
- r - R:为什么matches函数识别的单词比要求的多38个(13个在正则表达式中)?
- node.js - 上下文流和实体在对话流中不起作用
- tensorflow - 通过 Jupyter Notebook 安装 TensorFlow 时出现问题
- python - 在没有表单提交/按钮的情况下解决 H-captcha?
- javascript - 如何在猫鼬模式中设置默认值
- php - Symfony 表单未显示正确错误(取决于星座)