Highcharts:向 yAxis 添加一个自定义标签

Posted

技术标签:

【中文标题】Highcharts:向 yAxis 添加一个自定义标签【英文标题】:Highcharts: Add ONE custom label to yAxis 【发布时间】:2017-07-18 15:14:34 【问题描述】:

我正在使用 highcharts,我知道 yAxis 标签是自动生成的。

问题是我有这个 3D 图表,其中除了数据之外,还有一个固定的“目标”线,我们可以在上面比较哪个数据集在它之上或之下。

由于 3D 图形不能很好地渲染线条,所以我使用了 plotLine,它的效果非常好。当我试图显示这个“目标”是多少时,问题就来了,因为即使它在正确的位置,显示这个目标数量也会很好。

我想要做的是在图表的左侧显示这条线的值,以便任何看到它的人都能够知道该特定数据集的目标是多少。

这是图表的截图,并圈出了我要添加自定义标签的地方: Graph screenshot

红色圆圈内是我要添加此自定义字符串的位置(应该是百分比数字)。

感谢你们提供的任何帮助。谢谢!

【问题讨论】:

我认为您应该能够使用 renderer.text 为您的图表添加自定义标签:jsfiddle.net/0hyaevax @GrzegorzBlachliński 感谢您的回复。这很好用,我没有考虑过使用渲染器文本,只是想着 yAxis 标签。它适用于默认视图,但由于我的图形视角是可移动的,问题是它停留在同一个地方。 link 那么你想实现与这个例子类似的东西吗? jsfiddle.net/0hyaevax/2 @GrzegorzBlachliński 这正是我想要做的,结果很完美。非常感谢!如果您希望将其发布为答案,我可以选择它来关闭问题。 【参考方案1】:

您应该能够使用 renderer.text 在图表中添加自定义文本。 http://api.highcharts.com/highcharts/Renderer.text

  load: function() 
    var chart = this,
      yAxis = chart.yAxis[0],
      plotLine = yAxis.plotLinesAndBands[0],
      pLPath = plotLine.svgElem.d;
    chart.renderer.text('CUSTOM LABEL', parseFloat(pLPath.split(' ')[7]) - 100, parseFloat(pLPath.split(' ')[8])).addClass('cT').attr(
      fill: 'red'
    ).add();
  ,

在上面的代码中,我使用的是 plotLine 的路径。

您的图表如何工作的实时示例:

http://jsfiddle.net/0hyaevax/2/

【讨论】:

以上是关于Highcharts:向 yAxis 添加一个自定义标签的主要内容,如果未能解决你的问题,请参考以下文章

HighCharts:设置yAxis的值

如何设置 Highcharts 图表最大 yAxis 值

Highcharts yAxis setExtremes far off

解决 Highcharts 中 yAxis 的 max 设置无效的问题

Highcharts yAxis.max 动态管理刻度间隔

Highcharts JS 的样式问题