我目前正在使用兩個同步圖表工作,這些圖表使用http://www.highcharts.com/demo/synchronized-charts(具體來說,syncExtremes()
函數)提供的示例演示。Highcharts:同步圖表在數據更新後不再同步
用戶將能夠使用日期選擇器從不同的數據集中進行選擇。當他們這樣做時,我用已更新數據和屬性的新版本替換現有圖表。這是爲了避免現有數據和新數據之間的衝突。
當我第一次加載圖表時,他們完全同步。但是,每當我更新數據並更換圖表時,它們就會失去同步。我很困惑,爲什麼會發生這種情況,因爲我使用與首次加載頁面時完全相同的方式創建它們(請參閱下面的代碼段)。
// draw on page load
var drawChart1 = new Highcharts.Chart(chart1);
var drawChart2 = new Highcharts.Chart(chart2);
var newData = [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4];
// draw on button click
$('#button').click(function() {
chart1.series[0].data = newData.reverse();
chart2.series[0].data = newData.reverse();
drawChart1 = new Highcharts.Chart(chart1);
drawChart2 = new Highcharts.Chart(chart2);
});
這是一個工作小提琴,其格式類似於我的項目。底部的按鈕更改數據並重新創建圖表:https://jsfiddle.net/brightmatrix/yqapp3f0/。
爲什麼syncExtremes()
在重新創建圖表時失敗?
我意識到一個更有效的方法可能是使用setData()
,但我想知道在我重寫我的代碼之前是否有我在當前方法中丟失的東西。
預先感謝您的指導和建議!
啊!這是一個極好的解決方案,**正好**解決了我的問題。非常感謝您的回覆。是的,在將來,我同意'setData()'或'series.update()'是更好的方法。 –