在highcharts上动态更新仪表

时间:2014-06-11 20:22:39

标签: jquery dynamic charts highcharts gauge

我正在大学网站项目中工作,我选择使用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,但它仍然无效。 有人能帮我吗? 对不起我的英语不好。 谢谢!

2 个答案:

答案 0 :(得分:7)

请参阅此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);  
        }
)}

答案 1 :(得分:0)

返回数据对象时,需要将该数据放入图表系列中。目前,您没有对数据对象进行任何操作。相关的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需要返回一个有效的系列数据对象(例如一个点数组)。