Highcharts在具有多个系列和共享工具提示的图表之间共享工具提示
Highcharts shared tooltip between charts with multiple series and shared tooltip
我正在尝试在图表之间设置共享工具提示。它工作得很好,只有当工具提示没有shared: true
,如果我设置shared: true
,我得到错误:
TypeError: 'undefined' is not an object (evaluating 'a[0].category') highcharts.js:3259
我准备的例子:http://jsfiddle.net/CAKQH/24408/
如果你在第一个图表上移动光标-它工作得很好,如果你评论shared: true
它也工作,但如果你在第二个图表上移动光标,你会得到一个错误。
有人遇到这个错误吗?请帮我解决这个问题。
出现问题是因为您在一个图表上有shared: true
,而在另一个图表上有默认(false)。这是一个问题,因为tooltip.refresh
方法将采取不同的路径,并根据共享设置为true或false的图表使用不同的输入。
您可以在源代码的第8806行找到这个分支,用于tooltip.refresh
方法:
// shared tooltip, array is sent over
if (shared && !(point.series && point.series.noSharedTooltip)) {
....
}
// single point tooltip
else {
....
}
你可以通过在你的syncTooltip
方法中做一个分支来处理这个问题,像这样处理不同的情况(例如JFiddle):
function syncTooltip(container, p) {
var i = 0;
for (; i < charts.length; i++) {
if (container.id != charts[i].container.id) {
if(charts[i].tooltip.shared) {
charts[i].tooltip.refresh([charts[i].series[0].data[p]]);
}
else {
charts[i].tooltip.refresh(charts[i].series[0].data[p]);
}
}
}
}
这样你就可以在两个图表上自由地将shared设置为true或false。
不幸的是,您的plotOptions.series.point.events.mouseOver
事件不能捕获通过shared: true
功能"选择"的点,因此您必须找到一个替代事件来正确捕获这种情况。
相关文章:
- d3.js Chord图的动态工具提示
- Graphiti中是否有任何工具提示功能
- "工具提示"jQuery插件坏了
- 单元格的工具提示或标题不显示超过2000个字符
- d3.js用按钮更新条形图工具提示
- 使Intro.js工具提示响应
- 画布中绘制的矩形区域的弹出工具提示
- 使用CSS/JavaScript更改剑道图工具提示文本颜色
- 使用共享工具提示时,单击Highcharts柱形图会返回不正确的序列索引
- 高亮显示工具提示共享项,具体取决于Highcharts中悬停的系列
- Highstock 共享工具提示多个系列 - 不在点时显示线条的数据
- 在所有系列类型之间共享工具提示
- 高图表:仅当序列重叠时才使用共享工具提示
- Highcharts,显示/隐藏共享工具提示时获取点索引
- Highcharts-某些系列的共享工具提示
- Highcharts共享的工具提示使系列之间的百分比差异
- Highstock共享工具提示此索引
- Highcharts在具有多个系列和共享工具提示的图表之间共享工具提示
- 如何在多个系列柱状图的列顶部对齐共享工具提示
- 共享点 2013 中的工具提示自定义