图表标题中的外部变量

时间:2014-07-01 20:51:01

标签: javascript php charts highcharts gauge

我在一个学校项目中工作,我从一个php文件中获取数据以显示在仪表中。 我使用这个javascript代码每秒更新de chart:

    function requestData() {
    $.getJSON('values.php', function(data) {
            var new_value = data;
            var point = $('#ta').highcharts().series[0].points[0];
            point.update(new_value);
            setTimeout(requestData, 500)
            }

)
}

使用此代码,我能够更新图表,问题是,我需要在图表的另一部分显示数值。这是我尝试的:

  yAxis: {
        title: {
            text: '<div id="tav">'+new_value+'V</div>',
            useHTML: true,
            y: 80
        }

当我把“new_value”图表停止工作时我什么也看不见。如果从图表的这一部分留下“new_value”,它就可以完美地运行。

有人能帮助我吗? 感谢

3 个答案:

答案 0 :(得分:0)

问题是new_value是本地定义的。您可以将变量定义为对象的属性:

var obj = {};
function requestData() {
$.getJSON('values.php', function(data) {
        obj.new_value = data;
        var point = $('#ta').highcharts().series[0].points[0];
        point.update(new_value);
        setTimeout(requestData, 500)
        }

)
}

yAxis: {
    title: {
        text: '<div id="tav">'+obj.new_value+'V</div>',
        useHTML: true,
        y: 80
    }

答案 1 :(得分:0)

要更新y轴标题,您必须使用以下代码:

$('#container').highcharts().yAxis[0].update({
            title:{
                text:"My text"
            }
        });

我创建了一个如何在点击按钮时动态更新y轴标题的动态演示: DEMO

JS代码部分,用于在按钮单击时动态更新图表标题:

var chart = $('#container').highcharts();
$('#my_btn').click(function(){
    //alert('hey');
    chart.yAxis[0].update({
        title:{
            text:"My text"
        }
    });
    alert('Y-axis title changed to "My text" !');
});

答案 2 :(得分:0)

确实使用Axis.setTitle()方法,请参阅:

 function requestData() {
     $.getJSON('values.php', function (data) {
         var new_value = data;
         var chart = $('#ta').highcharts()
         var point = chart.series[0].points[0];
         var yAxis = chart.yAxis[0];

         yAxis.setTitle({text: new_value });
         point.update(new_value);
         setTimeout(requestData, 500);
     })
 }