【问题标题】:How to update mulitple series in Highcharts simultaneously如何同时更新 Highcharts 中的多个系列
【发布时间】:2013-04-02 15:40:17
【问题描述】:

我正在使用 Highcharts 在一个图表上绘制多个系列。系列数据是从包含 JSON 格式数据的文件中读取的。该文件将每隔几秒钟更新一次新数据,并且我有一个重新读取文件的功能。 这是文件中的数据:

[{"name": "series1", "data": [[1,109],[2,313],[3,192]]},{"name": "series2", "data": [[1,111],[2,112],[3,777]]}]

我得到的代码是:

//Read JSON data from a file
$(function () {

    function getSeriesData(file) {
        var data = null;
        $.ajax({
        async: false,
            cache: false,
        url: file,
            method: 'GET',
            dataType: 'json',
            success: function(datasets){
                data = datasets;
            },
            error: function(error,text,http){
                alert("Error retrieving " + url + ".");
            }
        });  

        return data;
    }

    var graphData = getSeriesData("seriesData.json");

    var graphOptions = {
            chart: {
             type: 'line',
             renderTo: "container",
         },
         series: graphData
    };


    var graph = new Highcharts.Chart(graphOptions);

    var updateInterval = 1000 * 5;  // 5 seconds

    function update() {
        //Need to refresh series data here.
                    //Something like:
            graph.series = getSeriesData("series.json");
            graph.redraw();
            setTimeout(update, updateInterval);
    }

    update();});

查看文档似乎没有办法使用我的 getSeriesData 函数重新读取文件同时再次设置所有系列数据。这里和其他地方的大多数示例都可以通过 series[] 数组来设置单个系列的数据。但这不是我要找的。也许我必须重做代码才能这样做,但我想我会先在这里检查一下,希望有更简单的方法!提前致谢。

【问题讨论】:

    标签: json dynamic highcharts series


    【解决方案1】:

    我看不到一个电话就能完成所有系列的方法。我可以看到两个选项。

    如果系列的数量是固定的,您可以在 redraw 选项设置为 false 的情况下调用 series.setData 对其进行迭代,然后调用 redraw()。

    如果系列的数量可能发生变化,您将不得不遍历 chart.series 调用 remove,然后遍历您的系列数组调用 chart.addSeries。

    【讨论】:

    • 谢谢史蒂夫。系列的数量可能会改变,所以第二个选项是我可能不得不使用的。可惜似乎无法一次调用全部刷新。
    • 当你得到JSON时,你可以得到序列对象的长度,然后你就会有迭代次数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 2013-10-16
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多