如果点数超过阈值,则使用格式化程序将附加数据设置为 highcharts 工具提示不起作用
Setting Additional Data to highcharts tooltip with formatter doesn't work if points count exceed threshold
尝试使用 tooltip.formatter
将附加数据附加到系列工具提示
系列数据如下所示:
series: [{
name: 'Series 1',
data: [{ x:Math.rand(), label: "Test Label1"},
{ x:Math.rand(), label: "Test Label2"},
{ x:Math.rand(), label: "Test Label3"}
]
}]
和格式化程序:
tooltip: {
shared: true,
formatter: function() {
var result = '<b>' + Highcharts.dateFormat('%A, %b %e, %Y', this.x) + '</b>';
$.each(this.points, function(i, datum) {
result += '<br />' + datum.point.label;
});
return result;
}
}
问题是 highchart 仅在连续点数不超过某个阈值时才会在格式化程序函数中公开其他字段。通过实验,我发现它适用于少于大约 250 个点并且取决于图表配置。
似乎有一些内部限制,但我在文档中找不到任何提及。
有一个示例演示了 2 个图表相似但系列基数不同的问题:分别为 250 点和 500 点 - http://jsfiddle.net/k5exP/68/
这与您在 highstock 中默认启用了 datagrouping 有关。它会导致点被近似并跳过自定义参数。
尝试使用 tooltip.formatter
将附加数据附加到系列工具提示系列数据如下所示:
series: [{
name: 'Series 1',
data: [{ x:Math.rand(), label: "Test Label1"},
{ x:Math.rand(), label: "Test Label2"},
{ x:Math.rand(), label: "Test Label3"}
]
}]
和格式化程序:
tooltip: {
shared: true,
formatter: function() {
var result = '<b>' + Highcharts.dateFormat('%A, %b %e, %Y', this.x) + '</b>';
$.each(this.points, function(i, datum) {
result += '<br />' + datum.point.label;
});
return result;
}
}
问题是 highchart 仅在连续点数不超过某个阈值时才会在格式化程序函数中公开其他字段。通过实验,我发现它适用于少于大约 250 个点并且取决于图表配置。
似乎有一些内部限制,但我在文档中找不到任何提及。
有一个示例演示了 2 个图表相似但系列基数不同的问题:分别为 250 点和 500 点 - http://jsfiddle.net/k5exP/68/
这与您在 highstock 中默认启用了 datagrouping 有关。它会导致点被近似并跳过自定义参数。