Highcharts-将%附加到第一个轴标签



设置图表轴样式时,出版物中的常见样式是仅在Y轴的最顶部标签上包含单位或百分比符号。我正试图弄清楚如何在Highcharts中做到这一点。

我知道我可以硬编码一个数字,像这样:

 yAxis: {
    labels: {
        formatter: function() {
            if ( this.value == 12 ) {
               return this.value + "%";
            } else {
               return this.value;
            }
        }
    },

但这不是一个非常灵活的解决方案。

有没有办法测试显示的第一个(或第n个)值?有没有一种方法可以在格式化程序函数中获取值的索引?

2013更新

这在大多数情况下都有效:

if ( this.value == this.axis.getExtremes().max )
    return this.value + '%';
else 
    return this.value;

但是,如果yAxis.endOnTick设置为false,则不起作用,因为在这种情况下,轴的最大与轴上的最高标签不同。

有没有办法从格式化程序函数中获得最高的标签?

据我所知,不可能在轴上找到"第n个"项目,但第一个和最后一个可以使用属性this.isFirstthis.isLast' in stead of checking this.value`进行圆顶

如果您愿意,您也可以使用this.axis直接访问轴本身,因此您应该能够在轴本身上运行您想要的任何复杂逻辑。。

使用4.2.x版本的highchart,我用以下代码实现了它

labels: {
    formatter: function () {
        if(this.isFirst)
            return this.value + "%";
        else
            return this.value;
        }
    }
}

您也可以将[%]添加到yAxis的名称中。这样你就不必篡改蜱虫了。

您可以在最大值plotLine处绘制,并且在极端值更改后-移除并添加新的极端值)。然后将该plotLine的标签设置为"%"并移动到左侧。

另一个解决方案是使用轴标题-将其设置为顶部并删除旋转。

最后的解决方案(或者更确切地说是变通方法)是使用第二个yAxis,并在那里设置min和max(或tickPositions),只显示最后一个标签,然后第一个隐藏。

相关内容

最新更新