设置图表轴样式时,出版物中的常见样式是仅在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.isFirst
和this.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),只显示最后一个标签,然后第一个隐藏。