Подтвердить что ты не робот

Как форматировать данные в формате Highcharts Десятичные точки

Не могли бы вы взглянуть на этот пример и сообщить мне, как я могу форматировать 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. Благодаря

4b9b3361

Ответ 1

Вам нужно объединить dataLabels formatter и Highcharts.numberFormat:

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

См. jsFiddle

Ответ 2

Я бы просто добавил параметр формата к меткам данных следующим образом:

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

Это простой способ сделать это без необходимости определять функцию с использованием форматирования.

дополнительно:

Запятая после двоеточия удостоверяется, что число, подобное 1450.33333, отображается как 1450.33, что тоже приятно.

Ответ 3

Если кто-то хочет идти "дальше", я показываю данные, которые могут быть от 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: означает "миллиарды" (французский перевод бильярда) mios: означает "миллионы" (французский перевод миллионов)