Как показать две конкретные точки данных из табличных данных в Highcharts? - PullRequest
0 голосов
/ 04 мая 2018

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

В конце пользователь должен иметь возможность сравнить два года своего выбора из всего набора данных.

Из документации API я знаю, что могу выбрать диапазон точек данных из CSV с помощью startRow и endRow:

https://api.highcharts.com/highcharts/data.startRow

Но это только одна конкретная точка, как вы можете видеть в моей скрипке Есть ли другой способ программно показать конкретные точки?

Highcharts.chart('container', {
    chart: {
        type: 'column',
        polar: false,
    },
    title: {
        text: ''
    },
    subtitle: {
        text: ''
    },
    data: {
        csv: document.getElementById('csv').innerHTML,
        startRow: 3,
        endRow: 4,
        googleSpreadsheetKey: false,
        googleSpreadsheetWorksheet: false
    },
    series: [{
            name: 'val'
    }],
    yAxis: [{
        title: {
            text: ''
        },
        opposite: true,
        labels: {
            align: 'right',
            reserveSpace: true            
        }
    }],
    xAxis: [{
        type: 'datetime',
        opposite: false
    }],
    pane: {
        background: []
    },
    responsive: {
        rules: []
    },
    legend: {
        title: ''
    },
    plotOptions: {
        series: {
            animation: false
        }
    }
});

Edit:

Я забыл упомянуть, что хочу загрузить CSV только один раз. После этого пользователь должен иметь возможность выбирать / обновлять точки данных без перезагрузки данных. Для динамического отображения диапазонов значений я использовал настройки Axis min и max, например:

$(this).highcharts().update({
    xAxis:{
        min: Date.UTC(selectedStart,0,0),
        max: Date.UTC(selectedEnd,11,31)
    }
});

Весь набор данных загружается один раз, и ось диаграммы обновляется при взаимодействии с пользователем. Теперь я ищу что-то похожее, но не для диапазона, а для сравнения двух значений из всего набора данных.

1 Ответ

0 голосов
/ 07 мая 2018

Модуль данных Highcharts предоставляет функцию под названием parsed, которая позволяет программно изменять извлеченные данные перед их применением к диаграмме.

Из Highcharts API (https://api.highcharts.com/highcharts/data.parsed):

проанализировано: функция
Функция обратного вызова для доступа к проанализированным столбцам, двумерный массив входных данных непосредственно, прежде чем они интерпретируется в серии данных и категорий. Вернуть false, чтобы остановить завершение или вызовите this.complete () для продолжения асинхронной работы.

Демонстрационная версия : http://jsfiddle.net/gh/get/library/pure/highcharts/highcharts/tree/master/samples/highcharts/data/parsed/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...