我希望编写一个自定义标签格式化程序,它会在某些条件下显示自定义标签,并在其他条件下返回默认标签:
function yAxisFormatter() {
var val = //need default formatter value here
if(someCondition){
val = ....
}
return val;
}
Doc表示默认格式化程序为
function() {
return this.value;
}
但this.value
显示与默认标签不同,我需要默认标签,如9k而不是9000,依此类推。
答案 0 :(得分:1)
如果其他人偶然发现(就像我一样),你不需要复制部分内核。默认格式化程序被定义为轴对象的一部分。你可以像这样后退:
function myCustomFormatter() {
var result = this.axis.defaultLabelFormatter.call(this);
//Do your own things here.
return result;
};
答案 1 :(得分:0)
您需要从核心中提取部分代码,然后才能实现。
formatter: function () {
var numericSymbolDetector = this.axis.isLog ? this.value : this.axis.tickInterval,
numericSymbols = this.chart.options.lang.numericSymbols,
i = numericSymbols && numericSymbols.length,
value = this.value,
ret=value,
multi;
if (i && numericSymbolDetector >= 1000) {
ret = UNDEFINED;
while (i-- && ret === UNDEFINED) {
multi = Math.pow(1000, i + 1);
if (numericSymbolDetector >= multi && numericSymbols[i] !== null) {
ret = Highcharts.numberFormat(value / multi, -1) + numericSymbols[i];
}
}
}
return ret;
}