我正在使用Highcharts生成折线图。
我遇到numberFormat
:
var test = 15975000;
numberFormat(test, 0,',','.');
结果是:15.975.000
但我想将1000
转换为1k
,将100000
转换为100k
,将1000000
转换为1m
。
我该如何处理这个问题?
答案 0 :(得分:6)
numberFormat在Highcharts对象中可用。
Highcharts.numberFormat(test, 0,',','.');
示例http://jsfiddle.net/DaBYc/1/
yAxis: {
labels: {
formatter: function () {
return Highcharts.numberFormat(this.value,0);
}
}
},
答案 1 :(得分:4)
formatter: function() {
result = this.value;
if (this.value > 1000000) { result = Math.floor(this.value / 1000000) + "M" }
else if (this.value > 1000) { result = Math.floor(this.value / 1000) + "k" }
return result;
}
另请参阅:How to format numbers similar to Stack Overflow reputation format
答案 2 :(得分:1)
你只需要这样做:
mysql-connector-java-5.1.35-bin.jar
以下是用于转换要在javascript上插入的数据的函数:
labels: {
formatter: function() {
return abbrNum(this.value,2); // Need to call the function for each value shown by the chart
}
},
希望这有效=)
答案 3 :(得分:0)
如果要格式化Highstock图表:
tooltip: {
pointFormatter: function() {
var result = this.y;
let header = '<table>';
let body = '<tr><td style = "color: ' + this.series.color + ';padding:0">'
+ this.series.name + ': </td><td style = "padding:0"><b>';
if (result > 1000000) {
result = Math.floor(result / 1000000) + "M"
}
else if (result > 1000) {
result = Math.floor(result / 1000) + "k"
}
return header + body + result + '</b></td></tr></table>';
}
},
我很难找到一种添加数百万的方式,同时又不影响数据分组功能或日期。