javascript - 使用 Highcharts.js 绘制动态添加的数组元素

标签 javascript jquery highcharts

这是我的 fiddle :DEMO

fiddle 是对真实案例场景的模仿,其中我从传感器(MQTT)获取数据

dataArray[] 每 1 秒填充一次。为了显示相同的内容,我有一个按钮,单击该按钮即可将数组元素添加到 dataArray。

5 秒超时后开始绘制图表。如果在 DOM 准备好后 5 秒内单击按钮“x”次,将绘制“x”个点。

$("#addToArray").click(function() {
  dataArray.push((payload));
  console.log(dataArray);
})

var payload = {
  "temperature": 2,
  "humidity": 80
};

function startGraph() {
   //Graph code
}

如果 5 秒后按下按钮,数组元素仍将被添加但不会绘制(即,5 秒后传入的任何传感器数据都不会绘制)

有没有办法读取新添加的数组元素并继续绘制图形?

最佳答案

您可以使用该系列的addPoint方法动态添加点。

$("#addToArray").click(function() {
  //myChartTemperature and myChartHumidity are created  globally in your code
  //so I check if they exist here
  if(myChartTemperature) {
    myChartTemperature.series[0].addPoint(payload.temperature);
  }
  if(myChartHumidity){
    myChartHumidity.series[0].addPoint(payload.humidity);
  }
})

JSFiddle

关于javascript - 使用 Highcharts.js 绘制动态添加的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48500098/

相关文章:

javascript - ExtJs4 从 URL 加载面板

Javascript 将字符串变量添加到响应中

javascript - Firebase 身份验证有效但不断刷新页面

javascript - 在表中选择更改选项时弹出模型

javascript - 如何检查函数是否被调用

javascript - 在用户更新标签后呈现 Highcharts

javascript - 在 Electron 窗口悬停时隐藏标题栏?

javascript - 未捕获的类型错误 : Cannot call method 'toLowerCase' of undefined

javascript - Highcharts 不渲染小数据集

javascript - 使用 geojson 数据和 oneeachfeature 的传单弹出窗口内的 Highcharts