Highcharts 从数组数据更新图表
Highcharts update graph from array data
我正在使用 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。
我正在使用 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。