Есть ли способ отформатировать подсказки многострочного графика в одну строку? - PullRequest
0 голосов
/ 17 января 2019

У меня есть график нескольких серий (линии и тип диапазона области). Изображение диаграммы

enter image description here

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

POSITIVE: 20%
POSITIVE RANGE: 19% - 21%
NEGATIVE: 45%
NEGATIVE RANGE: 43% - 46%
NEUTRAL: 35%
NEUTRAL RANGE: 34% - 36%

Отформатируйте в:

POSITIVE: 20% (19% - 21%)
NEGATIVE: 45% (43% - 46%)
NEUTRAL: 35% (34% - 36%)

Мне нужна подсказка SHARED, так как на графике много данных.

Я пытался присвоить id и relatedid каждой серии, но не смог добиться изменения формата.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

На xaxis у меня есть даты, и я хотел бы добавить их в верхней части всплывающей подсказки, я пытался:

            return   Highcharts.dateFormat('%b - %Y',
                                      new Date(p.x)) +' <span style="color:' + p.point.color + '">\u25CF</span> ' + p.series.name + ': <b>' + Math.round(p.point.y) + '% (' + Math.round(low) + '-' + Math.round(high) + ')</b><br/>'
        }

Но он добавляет его в каждую строку, а не просто в верхнюю

0 голосов
/ 17 января 2019

Вы можете использовать функцию formatter для всплывающей подсказки:

tooltip: {
    shared: true,
    formatter: function(e) {
        var points = this.points,
            i,
            result = '';

        function formatPoint(p, low, high) {
            return '<span style="color:' + p.point.color + '">\u25CF</span> ' + p.series.name + ': <b>' + p.point.y + '% (' + low + '% -' + high + ' %)</b><br/>'
        }

        for (i = 0; i < points.length; i += 2) {
            result += formatPoint(points[i], points[i + 1].point.low, points[i + 1].point.high)
        }

        return result
    }
}

Живая демоверсия: http://jsfiddle.net/BlackLabel/g3qeobaf/

Справочник по API: https://api.highcharts.com/highcharts/tooltip.formatter

...