Форматирование номера всплывающей подсказки 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
}
]
}]