在对图表轴进行样式设置时,出版物中的常见样式是仅在Y轴的最顶部标签上包含单位或百分号。我试图找出如何在Highcharts中做到这一点。
我知道我可以对一个数字进行硬编码,例如:
yAxis: {
labels: {
formatter: function() {
if ( this.value == 12 ) {
return this.value + "%";
} else {
return this.value;
}
}
},
但这不是一个非常灵活的解决方案。
有没有办法测试显示的第一个(或第n个)值?有没有办法在格式化函数中获取值的索引?
这适用于大多数情况:
if ( this.value == this.axis.getExtremes().max )
return this.value + '%';
else
return this.value;
但是,如果yAxis.endOnTick
设置为false,则不有效 - 因为在这种情况下,轴的最大值与轴上最高的标签。
有没有办法从格式化程序函数中获得最高的 标签 ?
答案 0 :(得分:3)
据我所知,在轴上找不到'nth'项是不可能的,但是第一个和最后一个可以使用属性this.isFirst
和this.isLast' in stead of checking
this.value来圆顶。
如果您愿意,您也可以使用this.axis
直接访问轴本身,这样您就可以在轴上运行您想要的任何复杂逻辑。
答案 1 :(得分:2)
使用4.2.x版本的高图我已经用以下代码实现了它
labels: {
formatter: function () {
if(this.isFirst)
return this.value + "%";
else
return this.value;
}
}
}
答案 2 :(得分:0)
您还可以将[%]
添加到yAxis的名称中。然后你就不必篡改蜱。
答案 3 :(得分:0)
您可以以最大值plotLine
绘制,并在更改极值后删除并添加新值。然后标记该plotLine您可以设置为'%'并移动到左侧。
另一个解决方案是使用轴标题 - 将其设置为顶部并移除旋转。
最后的解决方案(或更确切地说是解决方法)是使用第二个yAxis,并设置min和max(或tickPositions),并仅显示最后一个标签,然后首先隐藏。