如何格式化Highcharts dataLabels小数点

问题描述 投票:16回答:4

你能看一下qazxsw poi,让我知道如何格式化数据标签只显示两位小数?

这是我在该系列中的数字格式

this example

我想像7.55,6.34,9.55一样介绍它们。谢谢

highcharts
4个回答
26
投票

你需要结合 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] }] dataLabelsformatter

Highcharts.numberFormat

... dataLabels: { enabled: true, formatter: function () { return Highcharts.numberFormat(this.y,2); } } ...


17
投票

我只需将格式选项添加到数据标签,如下所示:

jsFiddle

这是一种简单的方法,无需使用格式化程序定义函数。

额外:

冒号后面的逗号确保像1450.33333这样的数字显示为1,450.33,这也很好。


2
投票

如果有人想要“进一步”,我显示的数据可能是10 ^ 1到10 ^ 9,所以我正在转换它们并在之后显示单位。

请记住,Highcharts只处理整数,所以如果你想添加单位(而不是因为多个单位而不在Y轴中),你可以在源数据中给它,但你必须在之后格式化它们:

dataLabels: {
    enabled: true,
    format: '{point.y:,.2f}'
}

mias:代表“milliards”(台球的法语翻译)mios:代表“million”(法语翻译数百万)


1
投票

我在评论中注意到你不想显示尾随零。

这是我能够集合的最简单的解决方案:

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}'不起作用。

© www.soinside.com 2019 - 2024. All rights reserved.