是否可以更改缩放或其他与缩放相关的参数,以便在 Highcharts 中动态设置 tickInterval?

Is it possible to get a statechange of the zoom or other zoom-related parameters in order to dynamically set tickInterval in Highcharts?

编辑:fiddle 此处:https://jsfiddle.net/o9sjyxqf/ .

由于我继续从事 Highcharts 项目,出现了这个问题。

关于x轴上的刻度线。

我有一个 Highchart,其中包含特定时间段(例如 6 个月)的每日数据点。所以当图表显示 6 个月时,我有大约 6x30 个数据点。放大时,会更少,例如3 周(3x21 个数据点)。

在不缩放的情况下查看时,数据点太多,xAxis 上的刻度线杂乱无章。减少 tickInterval 可以使它变得整洁。但是放大时 xAxis 上的刻度线不够多。

我想在使用缩放时以编程方式注册(一个事件?),理想情况下还有缩放到什么,以便可以相应地设置 tickInterval(动态地,更高的 tickInterval 值用于缩小,较低的值 tickInterval 用于放大)。

这可能吗?是否有事件或类似事件记录了缩放的使用?如果无法根据缩放动态更改 tickInterval,您还有什么其他建议可以使 xAxis 标记在放大和缩小时保持整洁?

演示: 加载图表时(设置/放大起点和终点):

缩小时:

感谢您的帮助和支持!

您可以使用 setExtremes 事件回调函数并根据 minmax 值更新滴答间隔。

    xAxis: {
        type: 'datetime',
        events: {
            setExtremes: function(e) {
                const interval = (e.max - e.min) / 6;

                this.update({
                    tickInterval: interval
                }, false);
            }
        }
    }

您也可以考虑使用minTickIntervaltickPixelInterval


现场演示: http://jsfiddle.net/BlackLabel/d1Lbj9xh/

API参考:

https://api.highcharts.com/highcharts/xAxis.events.setExtremes

https://api.highcharts.com/highcharts/xAxis.minTickInterval

https://api.highcharts.com/highcharts/xAxis.tickPixelInterval