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
) 启动并始终激活我的自定义格式。
我试过的
- 自定义
tooltip.dateTimeLabelFormats
但同样,缩小后使用默认的星期格式
- 使用
xAxis.dateTimeLabelFormats
但这只会影响轴标签的呈现,不会影响工具提示
似乎有一个使用 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;
}
}
这是由 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
我使用 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
) 启动并始终激活我的自定义格式。
我试过的
- 自定义
tooltip.dateTimeLabelFormats
但同样,缩小后使用默认的星期格式 - 使用
xAxis.dateTimeLabelFormats
但这只会影响轴标签的呈现,不会影响工具提示
似乎有一个使用 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;
}
}
这是由 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