在这个jsfiddle中,每次切换序列的可见性时,图表都有很好的缩放效果。
但是当我添加上限序列时,这种效果会丢失,因为该序列具有最低和最高的 x 值。
如何使图表放大我选择的序列,并防止其他序列影响缩放边界?
{
name: 'UpperLimit',
color: '#FF0000',
dashStyle: 'ShortDash',
showInLegend: false,
//affectsZoomBox: false, //No such thing :(
data: [
[1, 100],
[10, 100]
]
},
我认为使用该系列的配置是不可能的。但是,如果您愿意破解一点,则可以从轴极值的计算中排除一个或多个序列:
chart.xAxis[0].oldGetSeriesExtremes = chart.xAxis[0].getSeriesExtremes;
chart.xAxis[0].getSeriesExtremes = function() {
var axis = this;
var originalSeries = axis.series;
var series = [];
for (var i = 0; i < originalSeries.length; i++) {
// Filter out the series you don't want to include in the calculation
if (originalSeries[i].name != 'UpperLimit') {
series.push(originalSeries[i]);
}
}
axis.series = series;
axis.oldGetSeriesExtremes();
axis.series = originalSeries;
}
该代码演示如何覆盖轴对象上的getSeriesExtremes
函数。该方法将替换为一个包装器,该包装器删除应排除的序列,然后调用原始函数,然后将原始系列还原到轴。
这显然是一个黑客。但是,它可以在我的机器上运行...