Highstock:缩小后忽略自定义工具提示

Highstock: custom tooltip ignored after zooming out

我使用 highcharts/highstock 已经有一段时间了,最​​近观察到一个我无法理解的行为。这是关于 highstock 选项 tooltip.xDateFormat,它允许自定义呈现工具提示的“日期部分”。

Highcharts.stockChart('chart', {
  series: [ { data: series_data } ],
  tooltip: {
     xDateFormat: "test custom date"
  }
}

实际上,我将此选项与格式字符串而不是硬编码字符串一起使用,但这与此问题无关。不寻常的是,缩小后,自定义格式突然被忽略并被默认格式取代。

根据显示的点数,似乎存在某种截断。再次放大会使工具提示切换回自定义格式。

这里有一个实例:https://jsfiddle.net/GregorDeCillia/5hj6r1ft/9/

过去有没有人经历过类似的行为?我对 highcharts 的 API 参考相当熟悉,但似乎找不到任何解释为什么会发生这种情况。我的目标是防止默认格式 (Week from Monday, Jun 5, 2017) 启动并始终激活我的自定义格式。

我试过的

似乎有一个使用 fooltip.formatter 的解决方法,它允许使用回调函数为系列和日期定义工具提示,returns 一个 [date, y1, y2, ...] 形式的数组.

tooltip: {
    formatter: _ => ['test custom date', 'custom y']
}

在我的例子中,我现在重用 y 值的默认格式化程序,但替换逻辑来格式化日期

tooltip: {
    formatter: function(tooltip) {
         let tt = tooltip.defaultFormatter.call(this, tooltip);
         tt[0] = 'test custom date';
         return tt;
    }
}

实例:https://jsfiddle.net/GregorDeCillia/5hj6r1ft/58/

这是由 data-grouping 功能引起的。您可以禁用它或为每个时间跨度定义自定义格式。

  series: [{
    data: data,
    dataGrouping: {
      enabled: false,
      ...
    }
  }]

现场演示: https://jsfiddle.net/BlackLabel/yor987mt/

文档: https://www.highcharts.com/docs/stock/data-grouping

API参考:https://api.highcharts.com/highstock/series.line.dataGrouping.dateTimeLabelFormats