Форматирование номера всплывающей подсказки HighChart

Я использую HighCharts JS в первый раз. Пока что я очень впечатлен. Я набираю кратные ряды и использую общую всплывающую подсказку. Номера в общей подсказке верны, но они не отформатированы, как хотелось бы. Например, я вижу 9876 вместо 9,876.

Я знаю, что я могу использовать форматтер для полной настройки всплывающей подсказки. Вместо полного повторения всплывающей подсказки я просто хотел бы отформатировать номер и сохранить существующий внешний вид.

Вопрос: Можно ли указать формат числа (ов) в подсказке без написания пользовательского форматирования?

Ответ 1

К сожалению, это невозможно, я боюсь: форматы всплывающих подсказок по умолчанию несколько скрыты внутри объектов Point и Tooltip и не предоставляют доступ к форматированию чисел.

Однако вам может потребоваться глобальное переопределение реализации по умолчанию Point tooltipFormatter с чем-то вашим собственным, например

Highcharts.Point.prototype.tooltipFormatter = function (useHeader) {
    var point = this, series = point.series;
    return ['<span style="color:' + series.color + '">', (point.name || series.name), '</span>: ',
        (!useHeader ? ('<b>x = ' + (point.name || point.x) + ',</b> ') : ''),
        '<b>', (!useHeader ? 'y = ' : ''), Highcharts.numberFormat(point.y, 0), '</b>'].join('');
};

Эта реализация такая же, как и по умолчанию, за исключением вызова Highcharts.numberFormat в последней строке, которая будет делать ваше форматирование номера.

Имейте в виду, что такое изменение применимо ко всем вашим диаграммам.

Ответ 2

Используйте pointFormatter для форматирования общей подсказки. Это доступно с версии 4.1.0:

tooltip: {
    shared: true,
    pointFormatter: function() { 
        return '<span style="color:' + this.series.color + ';">●</span> ' + this.series.name + ': <b>' + numberFormat(this.y) + '</b><br/>'; 
    }
}

Ответ 3

Начиная с версии 2.2 существует новая опция "pointFormat" для указания отдельного форматирования только для значений pointvalues: http://api.highcharts.com/highcharts#tooltip.pointFormat

Ответ 4

Способ применения функции Math.round() внутри highchart script.

series: [{
    type: 'pie',
    name: 'CPU (GHz)',
    data: [
            ['Used',Math.round( <?php echo $gSum_Allocated_CPU; ?>, 2)],
            {
                name: 'Available',
                y:Math.round(<?php echo $gSum_Available_CPU; ?>, 2),
                sliced: true,
                selected: true
             }
          ]
     }]