我想在 highcharts 折线图上显示几个大数字点。
例如 100,000, 10,000,000, 1,000,000,000
当我显示这些时,y 轴会自动将数字格式化为 100 k、10 M、1,000 M 等,但工具提示仍显示实际的大数字。
是否可以在工具提示中将 1,000,000,000 显示为 1 B 或 1000 M。
示例 - http://jsfiddle.net/ynCKW/1/
我正在尝试使用 numberFormat 函数,但我认为它不是正确的函数。
Highcharts.numberFormat(this.y,0)
Run Code Online (Sandbox Code Playgroud)
我是否必须编写一个自定义函数来在工具提示中执行此格式?
您可以使用在 Highcharts 核心中实现的相同逻辑:
tooltip: {
formatter: function () {
var ret = '',
multi,
axis = this.series.yAxis,
numericSymbols = ['k', 'M', 'G', 'T', 'P', 'E'],
i = numericSymbols.length;
while (i-- && ret === '') {
multi = Math.pow(1000, i + 1);
if (axis.tickInterval >= multi && numericSymbols[i] !== null) {
ret = Highcharts.numberFormat(this.y / multi, -1) + numericSymbols[i];
}
}
return ret;
}
},
Run Code Online (Sandbox Code Playgroud)
和 jsFiddle:http : //jsfiddle.net/ynCKW/2/
编辑 Highcharts v6:
我们可以调用内置方法,应该更容易维护:http : //jsfiddle.net/BlackLabel/ynCKW/104/
tooltip: {
valueSuffix: '',
formatter: function () {
var axis = this.series.yAxis;
return axis.defaultLabelFormatter.call({
axis: axis,
value: this.y
});
}
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8495 次 |
| 最近记录: |