首页 > 解决方案 > Highcharts 逐步缩小

问题描述

目前在 Highcharts 时间序列中,我们能够放大数据,我们可以通过按钮重置缩放,但我想要一些可以像我们放大一样的方式逐步缩小的东西。有什么办法吗?任何帮助都会很棒。在此先感谢

标签: highcharts

解决方案


想法是在缩放选择后找到新的 xAxis 极值,并将它们保存在extremesXmin 和extremesXmax 数组中,然后在单击resetZoomButton 后设置这些先前的极值:

chart: {
    zoomType: 'x',
    events: {
      selection: function(e) {
        if (e.xAxis) {
          extremesXmin.push(e.xAxis[0].min)
          extremesXmax.push(e.xAxis[0].max)
        }
        zoomLevel++;
      }
    }
  },

要控制按钮并设置新的极端值,您需要覆盖 Highcharts 原型中 showResetZoom() 函数中的 zoomOut() 函数:

function zoomOut() {
  if (zoomLevel > 1) {
    chart.xAxis[0].setExtremes(extremesXmin[extremesXmin.length - 2], extremesXmax[extremesXmax.length - 2])
    extremesXmin.pop()
    extremesXmax.pop()
    zoomLevel--;
  } else {
    chart.zoomOut();
  }
}

工作演示:https ://jsfiddle.net/BlackLabel/h8af7L9g/


推荐阅读