Highcharts: построить число, которое было слишком мало для обнаружения? - PullRequest
0 голосов
/ 05 августа 2020

Я рисую значения на Highchart для моего клиента. Иногда она что-то проверяет, и полученное число слишком мало, чтобы его можно было обнаружить (поэтому она не дает мне числового значения). Она не хочет, чтобы диаграмма показывала ноль, а скорее «необнаружение». Есть ли у кого-нибудь идеи, как это показать?

Например, как мне построить что-то вроде «если <.5, то отобразить« <0,5 »вместо числа»? </p>

Вот таблицы, которые я конвертирую в Highcharts (в частности, тест Microcystin). Highcharts основаны на анализе файлов .csv с PHP. Если значение говорит «<0,5», я не хочу, чтобы оно было нулем. Я хочу, чтобы люди знали, что тест был проведен, но уровень был слишком низким для регистрации. На данный момент я прошу своего клиента объяснить это, используя вводный текст, но подумал, что, может быть, у кого-то из вас есть идея получше сообщить об этом. </p>

Примечание: я вижу, что она сообщила о 0,29 (что меньше 0,5). Это выглядит несовместимым с тем, о чем я спрашиваю. По-видимому, это было проверено с помощью более чувствительного теста (так что это действительный график).

Пример серии: 0,2, 0,66, 23,3, 1,64, 0,29, <0,5, 0,58, 464, 93,2, 22,9 </p>

1 Ответ

1 голос
/ 17 августа 2020

Вы можете преобразовать такие значения в очень маленькие числа и показать их как метки данных и во всплывающей подсказке как <0.5 значение.

var data = [0.2, 0.66, 23.3, 1.64, 0.29, '<0.5', 0.58, 464, 93.2, 22.9];

data = data.map(el => isNaN(el) ? 0.0001 : el);

Highcharts.chart('container', {
    series: [{
        data: data,
        dataLabels: {
            enabled: true,
            formatter: function() {
                if (this.y < 0.5) {
                    return '< 0.5'
                }

                return this.y;
            }
        }
    }],
    tooltip: {
        pointFormatter: function() {
            var pointVal = this.y < 0.5 ? '< 0.5' : this.y;
            return '<span style="color:' + this.color + '">●</span> ' + this.series.name + ': <b>' + pointVal + '</b><br/>'
        }
    }
});

Живой пример: http://jsfiddle.net/BlackLabel/0q864fx2/

Ссылка на API:

https://api.highcharts.com/highcharts/series.line.dataLabels.formatter

https://api.highcharts.com/highcharts/tooltip.formatter

...