我想在$前加上默认的y轴标签。我的条形图使用数百万的值,因此图表返回值-MM(80MM,30MM)。我想做的是格式化y轴,如$ -value-MM($ 80MMm $ 30MM)。我已经尝试过以下代码并且无法使其正常工作?
yAxis: [{ // Primary yAxis
labels: {
formatter: function () {
return '$' + this.value;
}
},
title: {
text: 'Revenue',
答案 0 :(得分:4)
如果我正确理解了这个问题,您的数据已经有'MM'后缀,并且您想要添加前缀'$'。
尝试,
yAxis: {
labels: {
format: '${value}'
}
}
答案 1 :(得分:2)
实现此目的的一种相当复杂的方法是重新使用Highcharts在其内部defaultLabelFormatter
中使用的代码,用于数字轴,并在轴格式化器中使用它。
此示例,添加了前缀(JSFiddle):
yAxis: {
labels: {
formatter: function() {
var numericSymbols = Highcharts.getOptions().lang.numericSymbols;
var i = numericSymbols && numericSymbols.length;
var numericSymbolDetector = this.axis.isLog ? this.value : this.axis.tickInterval;
var UNDEFINED, ret, multi;
while (i-- && ret === UNDEFINED) {
multi = Math.pow(1000, i + 1);
if (numericSymbolDetector >= multi && (this.value * 10) % multi === 0 && numericSymbols[i] !== null) {
ret = Highcharts.numberFormat(this.value / multi, -1) + numericSymbols[i];
}
}
if (ret === UNDEFINED) {
if (Math.abs(this.value) >= 10000) {
ret = Highcharts.numberFormat(this.value, -1);
} else {
ret = Highcharts.numberFormat(this.value, -1, UNDEFINED, '');
}
}
return "$"+ret; // Adding the prefix
}
},
}
这种实验性的简短形式是将defaultLabelFormatter
称为所需上下文的基本部分。一个例子(JSFiddle):
yAxis: {
labels: {
formatter: function() {
return "$" + this.axis.defaultLabelFormatter.call({
axis: this.axis,
value: this.value
});
}
},
}
由于上下文不完整,如果您的轴是datetime
或categories
或者可能是对数,它将不会按预期工作,但应该适用于数字轴。为了全面了解,我建议查看完整的defaultLabelFormatter
实现。