在某些线上禁用highcharts的工具提示,而在其他线上保持启用?

50

我有一个包含多条线的Highchart。 我想禁用某些线条上的工具提示,并在其他线条上保留它。 是否可能? 我知道如何全局禁用工具提示,但不知道如何按系列禁用它。

例如,在标准线图示例中,是否可能在红色和蓝色线上禁用工具提示,但在其他两个线上启用它?

3个回答

58

更新

使用enableMouseTracking: 布尔值

注意 在这个问题被提出之后,enableMouseTracking: 布尔值被引入。

旧回答

我刚刚在Tokyo 系列中禁用了高度点。

以下是您的代码:

         tooltip: {
                formatter: function() {
                    
                    if(this.series.name == 'Tokyo' && this.y == 26.5 ){
                      return false ;
                    // to disable the tooltip at a point return false 
                    }else {
                        return '<b>'+ this.series.name +'</b><br/>'+
                        this.x +': '+ this.y +'°C';
                }   
                }
            }

jsfiddle


6
非常感谢,我现在已经在我的代码中实现了这个功能。我发现在所需的系列中设置“enableMouseTracking: false”也可以起到作用。干杯。 - vulture
在我的情况下,我需要在特定系列上进行点击事件,而不是工具提示。使用 enableMouseTracking: false 选项,点击事件也被禁用了。因此我相信我应该采用你之前的答案。 - Raghuveer
1
文档中说可以按系列设置,但只提供了全局设置的示例。 - Gerry
2
上面的链接以启用 enableMouseTracking 的方式不起作用。问题是关于启用每个系列,但 enableMouseTracking 似乎只适用于整个图表。我想知道这是否在 HighCharts(HighStock)6 中出现了问题? - Gerry
因此,如果使用“饼图”类型的图表,在pieFormatter函数中返回false仍会在悬停时呈现空工具提示。不确定为什么对于此函数返回false仍会呈现工具提示,但需要禁用饼图中的数据点,而且似乎没有任何方法可以实现这一点! - Solomon Closson
显示剩余2条评论

53

使用enableMouseTracking。 这是最好的方法。

每个系列

series: [{
    name: 'Serie1',
    data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6],
    enableMouseTracking: false
}, {
    name: 'Serie2',
    data: [7.0, 6.9, 9.5, 15.5, 15.2, 15.5, 15.2, 15.5, 11.3, 17.3, 11.9, 9.6]
}]

全局

plotOptions: {
    series: {
        enableMouseTracking: false
    }
}

以上代码仅会为第一个序列显示工具提示。

参考文献: enableMouseTracking


它也禁用了拖放功能。 - Shardul
这怎么是一个可用的例子?这对我不起作用。enableMouseTracking 只在 plotOptions 中。plotOptions 中没有 data 属性。 - SovietFrontier
@CodeAssist 你可以在 series (https://api.highcharts.com/highcharts/series.line.enableMouseTracking) 或者 plotOptions (https://api.highcharts.com/highcharts/plotOptions.series.enableMouseTracking) 中完成它。 - Ricardo Alvaro Lohmann
搞定了,这是一个@types/highchart的问题,因为缺少v6的类型定义。谢谢。 - SovietFrontier
如果使用“饼图”类型的图表,该如何做呢?由于多个系列会直接叠加在一起,因此这种方法在这种情况下并没有帮助。 - Solomon Closson
显示剩余2条评论

0

对于股票图表,enableMouseTracking: false 会使得鼠标悬停时线条无法交互。

这里有更好的解决方案:

Highcharts.chart('container', {
  series: [{
    name: 'John',
    type: 'column',
    data: [5, 3, 4, 7, 2],
    tooltip: {
      pointFormatter: function() {
        return false
      }
    }
  }, {
    name: 'Jane',
    type: 'column',
    data: [2, 2, 3, 2, 1],
    tooltip: {
      pointFormatter: function() {
        return 'Second <strong>column</strong> series.'
      }
    }
  }, {
    name: 'Joe',
    type: 'line',
    data: [3, 4, 4, 2, 5],
    tooltip: {
      pointFormatter: function() {
        return false
      }
    }
  }]

});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接