我試圖通過將其現有數據集替換爲從url請求中提取的數據集(這將在不同時間使用不同的數據)來每分鐘更新一次我的Highstock圖表。每分鐘更換一次數據集
到目前爲止,我甚至無法根據手動更改來刷新數據。
工作至今:https://jsfiddle.net/Lz8gLw8j/
我試圖測試變化的數據,然後用它的更新:
varData = [[0,0],[1,2]]
$('#chart2').highcharts().redraw();
這什麼都不做。
我試圖通過將其現有數據集替換爲從url請求中提取的數據集(這將在不同時間使用不同的數據)來每分鐘更新一次我的Highstock圖表。每分鐘更換一次數據集
到目前爲止,我甚至無法根據手動更改來刷新數據。
工作至今:https://jsfiddle.net/Lz8gLw8j/
我試圖測試變化的數據,然後用它的更新:
varData = [[0,0],[1,2]]
$('#chart2').highcharts().redraw();
這什麼都不做。
您可以設置新的數據,以下方式highchart:
var newData = [
[1251763200000, 23.61],
[1251849600000, 23.60],
[1251936000000, 23.79]
]
var chart = $('#chart2').highcharts();
chart.series[0].setData(newData);
$('#chart2').highcharts().redraw();
更新小提琴手:
看起來有,你可以使用
加載事件chart : {
events : {
load : function() {
// set up the updating of the chart each second
var series = this.series[0];
setInterval(function() {
var x = (new Date()).getTime(), // current time
y = Math.round(Math.random() * 100);
series.addPoint([x, y], true, true);
}, 1000);
}
}
}
這是小提琴:https://jsfiddle.net/jjwilly16/Lz8gLw8j/6/
FYI:我把這個從一個實例關閉Highcharts網站:http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/stock/demo/dynamic-update/
您可以將數據通過addPoint
方法使用setData
方法添加到現有系列和更換數據集。這兩種方法的第二個選項參數允許您重繪圖表。數據應該是數組的數組。嵌套數組包含繪製的實際數據。內部嵌套數組的第一個元素是epoch(x),而第二個元素是實際值(y)。該時代是自1970年1月1日午夜GMT/UTC以來的秒數。我已經更新了小提琴,讓您可以添加數據點以及重置數據。
主要的變化是這些行:
$('#updateButton').click(function() {
var date = $('#newDate').val();
var epoch = Math.round(new Date(date).getTime());
var value = parseInt($('#newValue').val());
var chart = $('#chart2').highcharts();
chart.series[0].addPoint([epoch, value], true);
});
$('#resetChart').click(function() {
var chart = $('#chart2').highcharts();
chart.series[0].setData(null, true);
});