我有兩個具有多個軸的Highcharts。兩組軸表示相同的單位,兩個圖表是水平對齊的。我創建了一個的jsfiddle根據Highchart sample來說明我的設置:Highchart多軸 - 多個圖表上的同步軸
http://jsfiddle.net/dennismadsen/gbbzz2jh/
在這個例子中,你可以在圖表的左邊y軸上放大。請注意右圖上的軸是同步的。這就是使用這種afterSetExtremes
事件做:
function syncYAxis(e) {
var thisAxis = this;
var thisChart = e.currentTarget.chart;
Highcharts.each(Highcharts.charts, function (chart) {
if (chart && chart !== thisChart) {
var currentAxis = chart.get(thisAxis.options.id);
currentAxis.setExtremes(e.min, e.max);
}
});
}
如果我改變右圖到不同的Highchart,但這不再工作。看到這個的jsfiddle:
http://jsfiddle.net/dennismadsen/kmuhw0zf/
我試圖調試,並添加了afterSetExtremes
事件向右圖表軸:
function rightChartAxisChanged(e) {
var thisAxis = this;
console.log('Right chart axis changed: '+thisAxis.options.id);
console.log('min/max: '+e.min+','+e.max);
console.log('user min/max: '+e.userMin+','+e.userMax);
}
從我所看到的,似乎新的最小值/計算出的e.min
和e.max
中的最大值錯誤。我在syncYAxis
的setExtremes
調用中給出的正確值存儲在e.userMin
和e.userMax
中。
所以在第二個小提琴中,當我放大第一張高圖時,第二張也放大了。這意味着它們同步。你能告訴我你想同步什麼excally – void
似乎也適合我工作。你能否敘述什麼是不正確的/不行的,或者我們如何一步一步地複製你的問題? –