请你看一下this example,让我知道如何格式化dataLabels只显示两位小数?
以下是本系列中的数字格式
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]
}]
我想提出它们,如7.55,6.34,9.55。感谢
答案 0 :(得分:26)
您需要合并dataLabels
formatter和Highcharts.numberFormat:
...
dataLabels: {
enabled: true,
formatter: function () {
return Highcharts.numberFormat(this.y,2);
}
}
...
请参阅jsFiddle
答案 1 :(得分:17)
我只需在数据标签中添加格式选项,如下所示:
dataLabels: {
enabled: true,
format: '{point.y:,.2f}'
}
这是一种简单的方法,无需使用格式化程序定义函数。
额外:
冒号后的逗号确保像1450.33333这样的数字显示为1,450.33,这也很不错。
答案 2 :(得分:2)
如果有人想要“进一步”,我显示的数据可能是10 ^ 1到10 ^ 9,所以我正在转换它们并在之后显示单位。
请记住,Highcarts只处理整数,所以如果你想添加单位(而不是因为多个单位而在YAxis中)你可以在源数据中提供它,但你必须在之后格式化它们:
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);
}
}
},
mias:代表“milliards”(台球的法语翻译) mios:代表“数百万”(法语翻译数百万)
答案 3 :(得分:0)
我在您要不显示尾随零的注释中注意到。
这是我能够召集的最简单的解决方案:
...
dataLabels: {
enabled: true,
formatter: function () {
return parseFloat(this.y.toFixed(2)).toLocaleString();
}
}
...
如果您不希望数字以逗号分隔符结尾(取决于语言环境),请删除.toLocaleString()。
侧注::不幸的是,使用格式(而不是像我们上面那样使用格式化程序和js函数)仅限于 float 格式的子集C库函数sprintf中的约定,如here on highcharts website所示。该库具有the code g可以自动为我们完成此操作,但不幸的是,它没有在Highcharts中实现:(,即格式:'{point.y:,。2g}'无效。