【问题标题】:Dynamically update gauge on highcharts在 highcharts 上动态更新仪表
【发布时间】:2014-06-11 20:22:38
【问题描述】:

我在一个大学网站项目中工作,我选择使用 Highcharts,它的使用非常简单。但是我在使用 .getjson 进行动态更新时遇到了一些问题。

我使用了这个http://www.highcharts.com/studies/live-server.htm 和这个http://jsfiddle.net/oceog/zpwdp/ 样本。 我还没有取得任何成功。然后我尝试在 API 上自己学习,我得出了这个结论:

function requestData() {
    $.jQuery.getJSON('values.php', data, 
        function(){
            var series = chart.series[0]
            chart.series.update()
            setTimeout(requestData, 1000);  
        }
)}

我将图表上的数据值留空,并在文件上加载了requestData,但它仍然不起作用。 有人能帮我吗? 对不起我的英语不好。 谢谢!

【问题讨论】:

  • 你的 json/ 数据是什么样子的?
  • 数据只是一个数字,php准确地返回我:[200]

标签: jquery dynamic charts highcharts gauge


【解决方案1】:

参考这个fiddle:

var new_value = 160;
var point = $('#container').highcharts().series[0].points[0];       
point.update(new_value);

根据你的情况,应该是这样的:

function requestData() {
    $.jQuery.getJSON('values.php', data, 
        function(){
            var new_value = 160;//the value you wish to update and set to guage
            var point = $('#div_id_of_chart_rendering').highcharts().series[0].points[0];       
            point.update(new_value);  
        }
)}

【讨论】:

  • 更新图表的功能应该在图表里面?我正在使用事件调用图表内的另一个函数。
【解决方案2】:

当您的数据对象被返回时,您需要将该数据放入图表系列中。目前,您没有对数据对象做任何事情。相关的 highcharts API 调用是 'setData' (http://api.highcharts.com/highcharts#Series.setData)。

您需要执行以下操作:

function requestData() {
$.jQuery.getJSON('values.php', data, 
    function(){
        chart.series.setData(data)
        setTimeout(requestData, 1000);  
    }
)}

为此,您的 php 需要返回一个有效的系列数据对象(例如一个点数组)。

【讨论】:

  • 在我将 values.php 中的数据直接设置到图表之前。它正在工作,它只给了我一个值,例如:[210]。你说的我试过了,还是不行。看来我的数据没有进入图表。该图表不显示任何值。我应该在图表系列上设置一个变量或类似的东西吗?
猜你喜欢
  • 2015-11-13
  • 1970-01-01
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
相关资源
最近更新 更多