如何在Highcharts中的columnrange图表的某些列上绘制水平线

如何在Highcharts中的columnrange图表的某些列上绘制水平线,highcharts,Highcharts,我正在高图中绘制一个柱状范围图,在同一个图中绘制不同的测量值和置信区间: 组内的前几列(如一月)表示不同城市的测量值,而最后一列表示置信区间。我想在代表数据平均值的置信区间中添加水平线。也就是说,从橙色矩形的左侧到右侧,每个橙色列将在特定的高度处获得自己的线。我如何绘制这样的线条 我知道如何添加行作为一个单独的系列类型行。然而,这样做,我不知道如何猜测橙色列的确切位置,也不知道如何处理通过图例隐藏某些列的情况 这个问题与我的情况有关,尽管我无法找到任何有效的解决方案 这是小提琴:你可以用它来画

我正在高图中绘制一个柱状范围图,在同一个图中绘制不同的测量值和置信区间:

组内的前几列(如一月)表示不同城市的测量值,而最后一列表示置信区间。我想在代表数据平均值的置信区间中添加水平线。也就是说,从橙色矩形的左侧到右侧,每个橙色列将在特定的高度处获得自己的线。我如何绘制这样的线条

我知道如何添加行作为一个单独的系列类型行。然而,这样做,我不知道如何猜测橙色列的确切位置,也不知道如何处理通过图例隐藏某些列的情况

这个问题与我的情况有关,尽管我无法找到任何有效的解决方案

这是小提琴:

你可以用它来画合适的线

function drawDataMeans() {
  const intervalSeries = this.get('conf-interval'),
        series = this.series.filter(series => intervalSeries !== series)

  let lines = this.dataMeansLines

  if (!lines) {
    lines = this.dataMeansLines = series[0].data.map(series => this.renderer.path().attr({
      'stroke-width': 2,
      stroke: 'black'
    }).add(intervalSeries.group))
  }

  const visibleSeries = series.filter(series => series.visible)

  if (intervalSeries.visible && visibleSeries.length) {
    intervalSeries.data.forEach((point, i) => {
      const mean = visibleSeries.reduce((sum, series) => sum + series.data[i].high, 0) / visibleSeries.length
      const {x, width} = point.shapeArgs
      const y = this.yAxis[0].toPixels(mean, true)

      lines[i].attr({
        d: `M ${x} ${y} L ${x + width} ${y}`,
        visibility: 'visible'
      })
    })
  } else {
    lines.forEach(line => line.attr({visibility: 'hidden'}))
  }
}
挂载/重画事件

chart: {
  type: 'columnrange',
  inverted: false,
  events: {
    load: drawDataMeans,
    redraw: drawDataMeans
  }
},
例如: