highchart/highstock 缩放后工具提示不调整

highchart/highstock tooltip does not adjust after zoom

我正在使用 highstocks 来绘制一个系列。当使用显示 point.y 的工具提示点格式时,工具提示在缩放时不会重新调整,因此如果您放大图形的中间,图形应始终从 0 开始,但工具提示显示的是图形未显示时的 yaxis 值t 缩放。

如果我选择显示point.change它会在缩放时重新调整,但总数显示错误。例如,最后一点 (2017-12-28) 应该显示 320.59%,而当使用 point.change 时它显示 318.78%(这是错误的)。

如何修复工具提示点格式在缩放时重新调整?我在 plotOptions {} 中使用 compare: 'value',因此缩放时图表从 0 开始。

请参阅fiddle: http://jsfiddle.net/cabvvpze/2/

point.change 是使用第一个 non-nullnon-zero 值 (https://api.highcharts.com/highstock/series.line.compare) 计算得出的。当图表未缩放时,满足此条件的第一个值是 ~1.81(第二点)——一切都是使用此值作为基线完成的。

系列在 compareValue 属性 中保存有关此特定值的信息 - 它可以在 tooltip.pointFormatter 中使用以获得所需的结果。

如果图表没有缩放(可以通过检查chart.resetZoomButton是否初始化来判断)在tooltip中打印series.compareValue + point.change。否则使用 point.change.

  pointFormatter: function() {
    var series = this.series,
      chart = series.chart;

    return '<span style="color:{' + series.color + '}"></span>' + ((!chart.resetZoomButton ? series.compareValue : 0) + this.change) + '%<br/>';

  }

现场演示: http://jsfiddle.net/kkulig/32kuokhb/

API参考:https://api.highcharts.com/highstock/tooltip.pointFormatter