将新系列[0] .data添加到现有的高级图中

时间:2015-02-12 11:03:26

标签: javascript php highcharts

我的图表在后端作为对象创建,并推送到像“{{chart(myChart)}}”这样的树枝。但我需要动态更新数据。所以我创建了新的图表,只通过ajax推送了chart-> series [0]。

我已经尝试过update()和setData()方法,但还没有运气,我看到“没有要显示的数据”。奇怪的是,如果我加载相同的对象 - 数据显示。

var dchart = $("#myChart").highcharts();
        console.log(dchart);
        var dp = $('body').find(".date-picker");
        dp.datepicker();
        dp.on('changeDate', function(e)
        {
            console.log(e.format('yyyy-m-d'));
            $.ajax({
                url: 'path',
                type: 'POST',
                data: { date: e.format('yyyy-m-d') }

            }).done(function(msg){
                dchart.series[0].setData(msg[0].data);}

4 个答案:

答案 0 :(得分:0)

我认为您需要像这样重写代码:

dchart.series[0].update({
    data: msg[0].data
}, true);

答案 1 :(得分:0)

使用

chart.addSeries();

这是Fiddle

答案 2 :(得分:0)

我认为您应该通知$.ajax(),数据是JSON格式,否则您将获得字符串。或者将字符串解析为JSON:

dchart.series[0].setData(JSON.parse(msg[0].data));

答案 3 :(得分:0)

我发现问题出在xAxis上。

在时间戳中加载的数据超出了初始图表中设置的时间范围。这就是它显示No data to display的原因。

解决方案是更新xAxis:

dchart.xAxis[0].setExtremes(min, max);