javascript - Highcharts 从数组数据更新图表

标签 javascript highcharts

我正在使用 Highcharts.js,我不确定如何更新图表。

系列数据取自名为“Data_A”的数组,但如果我更改数组中的值,图表不会发生任何变化。

此外,如果有人知道更好的方法从数组中获取数据并将其放入图表中,就像现在那样,那就太好了,我确信有更好的方法。

我现在在哪里: http://jsfiddle.net/zadaq5e5/1/

这是我的 JavaScript:

var Data_A = [];
var Data_B = [];

Data_A[ 2500 ] = 98;
Data_A[ 2501 ] = 95;
Data_A[ 2502 ] = 98;
Data_A[ 2503 ] = 98;
Data_A[ 2504 ] = 92;
Data_A[ 2505 ] = 98;
Data_A[ 2506 ] = 95;
Data_A[ 2507 ] = 98;
Data_A[ 2508 ] = 98;
Data_A[ 2509 ] = 92;

Data_B[ 2500 ] = 20;
Data_B[ 2501 ] = 30;
Data_B[ 2502 ] = 55;
Data_B[ 2503 ] = 66;
Data_B[ 2504 ] = 02;
Data_B[ 2505 ] = 20;
Data_B[ 2506 ] = 11;
Data_B[ 2507 ] = 26;
Data_B[ 2508 ] = 8;
Data_B[ 2509 ] = 96;


$(function () {

    setInterval(function(){ Data_A[ 2500 ] = Data_A[ 2500 ] + 1; },1000);

    chart = $('#container').highcharts({

        xAxis: {
            categories: []
        },

        tooltip: {
            shared: true,
            useHTML: true,            
            formatter: function() {
                HTML = "";
                HTML = HTML + "<table>";
                HTML = HTML + "<tr><td>Pressure A:</td><td>" + Data_A[this.x] + "</td></tr>";
                HTML = HTML + "<tr><td>Other data:</td><td>" + Data_B[this.x] + "</td></tr>";              
                HTML = HTML + "</table>";                
                return HTML;
            }
        },

        series: [{
            name: 'Compressebility',
            data: [
                {
                    x: 2500,
                    y: Data_A[2500],
                },
                {
                    x: 2501,
                    y: Data_A[2501],
                },
                {
                    x: 2502,
                    y: Data_A[2502],
                },
                {
                    x: 2503,
                    y: Data_A[2503],
                },
                {
                    x: 2504,
                    y: Data_A[2504],
                },
                {
                    x: 2505,
                    y: Data_A[2505],
                },
                {
                    x: 2506,
                    y: Data_A[2506],
                },
                {
                    x: 2507,
                    y: Data_A[2507],
                }
            ]
        }]

    });
});

最佳答案

如果您只想更新系列中的一个点,可以使用 Point.update()
Docs Here

但是,如果您想更新整个系列,您可能需要使用Series.setData()
Docs Here


如何使用:

首先,要处理您的 Chart 对象,您应该如何实例化它:

var myChart = new Highcharts.Chart({
   chart : {
            renderTo : $('#container')[0] // The element to where the chart will be rendered
        },
    // Additional options
})

要使用Point.update(),您可以通过
访问系列中的特定点 myChart.series[0].data[indexOfSpecificPoint].update(optionsObject)

要使用Series.setData(),您可以通过
访问该系列 myChart.series[0].setData(dataArray)

根据您的示例,假设您只想更新 Data_A[ 2500 ], 这是 fiddle我做的。

关于javascript - Highcharts 从数组数据更新图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29828703/

相关文章:

javascript - 使用 Nodejs 自动从 API 获取数据

javascript - 如何获取选择框中给定选项的索引值

javascript - onclick 触发调整大小,highcharts

jquery - 动画半饼图

javascript - Highchart 范围选择器不显示

javascript - Highcharts 获取选中的列索引

java - 无法在 ant javascript 中导入类

javascript - Angular2 选择中的模型何时反射(reflect)更改

javascript - JS无法调用null的drawImage方法

javascript - 根据数据类型动态为 Highcharts 中的特定数据分配颜色