你需要结合 series: [{
name: 'Tokyo',
data: [7.554555, 6.34345559, 9.5555, 14.5555, 18.4333433, 21.5555, 25.2, 26.5333333, 23.33333, 18.23243543, 13.776565669, 9.65454656]
}, {
name: 'London',
data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
}]
dataLabels
和formatter:
Highcharts.numberFormat
见...
dataLabels: {
enabled: true,
formatter: function () {
return Highcharts.numberFormat(this.y,2);
}
}
...
我只需将格式选项添加到数据标签,如下所示:
jsFiddle
这是一种简单的方法,无需使用格式化程序定义函数。
额外:
冒号后面的逗号确保像1450.33333这样的数字显示为1,450.33,这也很好。
如果有人想要“进一步”,我显示的数据可能是10 ^ 1到10 ^ 9,所以我正在转换它们并在之后显示单位。
请记住,Highcharts只处理整数,所以如果你想添加单位(而不是因为多个单位而不在Y轴中),你可以在源数据中给它,但你必须在之后格式化它们:
dataLabels: {
enabled: true,
format: '{point.y:,.2f}'
}
mias:代表“milliards”(台球的法语翻译)mios:代表“million”(法语翻译数百万)
我在评论中注意到你不想显示尾随零。
这是我能够集合的最简单的解决方案:
column: {
dataLabels: {
enabled: true,
formatter: function () {
// Display only values greater than 0.
// In other words, the 0 will never be displayed.
if (this.y > 0) {
if (this.y >= Math.pow(10, 9))
{
return Highcharts.numberFormat(this.y /Math.pow(10, 9) , 1) + " mias";
}
else if (this.y >= Math.pow(10, 6))
{
return Highcharts.numberFormat(this.y /Math.pow(10, 6) , 1) + " mios";
}
else
{
return Highcharts.numberFormat(this.y, 0);
}
}
},
如果您不希望数字以逗号分隔符结尾(取决于区域设置),请删除.toLocaleString()。
旁注:不幸的是,使用格式(而不是格式化程序和js func,就像我们上面所做的那样)仅限于来自C库函数sprintf的浮点格式约定的子集,如...
dataLabels: {
enabled: true,
formatter: function () {
return parseFloat(this.y.toFixed(2)).toLocaleString();
}
}
...
所示。那个库有here on highcharts website会自动为我们做这个,但不幸的是它没有在Highcharts中实现:(即格式:'{point.y:,。2g}'不起作用。