在垂直线的所有点上显示工具提示

Show tooltips on all points of vertical line

我需要在上面绘制带有工具提示的 plotLine。 api 无法提供情节线的工具提示。 我可以画一条线,垂直线,并为它制作工具提示,所以由于某种原因只显示一个工具提示点,即使我有几个点,所以当用户移动鼠标时我希望能够有几个不同的工具提示超过它。

这是代码,可以看到只显示了一个 dot/marker - https://jsfiddle.net/Lftwjymc/

代码副本:

Highcharts.chart('container', {
    xAxis: {
        type: 'datetime'
    },

    series: [{
        data: [
            [Date.UTC(2010, 0, 1), 29.9],
            [Date.UTC(2010, 0, 1), 71.5],
            [Date.UTC(2010, 0, 1), 75.5],
            [Date.UTC(2010, 0, 1), 80.5],
            [Date.UTC(2010, 0, 1), 106.4]
        ]
    }]
});

我的代码是对 api - https://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/series/data-array-of-arrays-datetime/

中示例的微小修改(只是使行垂直)

如何使用工具提示在图表中显示所有点(来自系列)? 它适用于非垂直系列,但那些系列变为垂直时只显示一个点。

或者,如何在情节线上制作工具提示?

您可以通过以下方法之一轻松实现它:

  1. 使用plotLine显示直线,使用scatter系列分别绘制每个点:

代码:

Highcharts.chart('container', {
  xAxis: {
    type: 'datetime',
    plotLines: [{
        color: '#FF0000',
        value: Date.UTC(2010, 0, 1),
      width: 1
    }]
  },
  series: [{
    type: 'scatter',
    data: [
      [Date.UTC(2010, 0, 1), 29.9],
      [Date.UTC(2010, 0, 1), 71.5],
      [Date.UTC(2010, 0, 1), 75.5],
      [Date.UTC(2010, 0, 1), 80.5],
      [Date.UTC(2010, 0, 1), 106.4]
    ]
  }]
});

演示:

API:


  1. 创建两个具有相同数据点的系列,linescatter:

代码:

const data = [
  [Date.UTC(2010, 0, 1), 29.9],
  [Date.UTC(2010, 0, 1), 71.5],
  [Date.UTC(2010, 0, 1), 75.5],
  [Date.UTC(2010, 0, 1), 80.5],
  [Date.UTC(2010, 0, 1), 106.4]
];

Highcharts.chart('container', {
  xAxis: {
    type: 'datetime'
  },
  series: [{
    linkedTo: 'main',
    data: data
  }, {
    type: 'scatter',
    id: 'main',
    name: 'Series',
    data: data
  }]
});

演示:

基于 Wojciech Chmiel 的回答 -

我可以用工具提示制作垂直线: 这是示例 - https://jsfiddle.net/05bwkzma/

看起来像:

关键项目: 使用散点图; 使用链接到散点图的线图; 散点图应具有 marker.enabled=false 和 status.hover.enabled=false [example].

代码:

const data = [
  [Date.UTC(2010, 0, 1), 29],
  [Date.UTC(2010, 0, 1), 30],
  [Date.UTC(2010, 0, 1), 31],
  [Date.UTC(2010, 0, 1), 32],
  [Date.UTC(2010, 0, 1), 33]
];

Highcharts.chart('container', {
  xAxis: {
    type: 'datetime'
  },
  series: [{
    linkedTo: 'main',
    data: data
  }, {
    type: 'scatter',
    id: 'main',
    name: 'Series',
    marker: {
      enabled: false,
      states: {
        hover: {
          enabled: false
        }
      }
    },
    data: data
  }]
});