【问题标题】:highchart/highstock tooltip does not adjust after zoomhighchart/highstock 工具提示在缩放后不调整
【发布时间】:2018-01-17 08:24:09
【问题描述】:

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

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

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

请看小提琴: http://jsfiddle.net/cabvvpze/2/

【问题讨论】:

  • point.change 似乎有不正确的值,因为比较函数不喜欢第一个值0。这会将所有值移动第一个点和第二个点的差异,即1.8。我尝试将第一个点设置为 0.00001,这似乎确实为 point.change 提供了正确的值。不将此作为答案发布,因为它不是真正的解决方案。我的例子见jsfiddle.net/ewolden/cabvvpze/3。
  • 嗯,这可能是一个值得尝试的工作,然后继续寻找更好的解决方案。谢谢!

标签: javascript jquery highcharts highstock


【解决方案1】:

point.change 是使用第一个 non-null 和 non-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

【讨论】:

猜你喜欢
  • 2018-09-28
  • 2021-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多