Highchart дисплей более 1 серии не отображается - PullRequest
0 голосов
/ 05 октября 2018

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

fetchdata.php

while($row = sqlsrv_fetch_array($weekly2)) {
    $BF1[] = $row['VoltageA'];
    $BF2[] = $row['VoltageB'];
    $wv3[] = $row['VoltageC'];

    $wi4[] = $row['IA'];
    $wi5[] = $row['IB'];
    $wi6[] = $row['IC'];

}

echo json_encode(array($BF1, $BF2));

Данные, которые я получаю из json_encode:

[[0.80299997329712,0.80599999427795,0.80599999427795,0.80800002813339,0.80800002813339,0.80699998140335,0.80099999904633,0.80099999904633,0.78700000047684,0.77799999713898],[0.80599999427795,0.80900001525879,0.80800002813339,0.81000000238419,0.80900001525879,0.81000000238419,0.80299997329712,0.80299997329712,0.78899997472763,0.78299999237061]]

Скрипт

$.when(
    $.getJSON('fetchdata.php')).then(function(BF1, BF2) {  
        Highcharts.chart('container', {
            chart: {
                type: 'line'
            },
            title: {
                text: 'Daily Voltage'
            },
            subtitle: {
                text: ''
            },
            xAxis: {
                categories: ['12:00 AM', '1:00 AM', '2:00 AM', '3:00 AM', '4:00 AM', '5:00 AM', '6:00 AM', '7:00 AM', '8:00 AM', '9:00 AM', '10:00 AM', '11:00 AM','12:00 PM', '1:00 PM', '2:00 PM', '3:00 PM', '4:00 PM', '5:00 PM', '6:00 PM', '7:00 PM', '8:00 PM', '9:00 PM', '10:00 PM', '11:00 PM']
            },
            yAxis: {
                title: {
                    text: 'FEEDER 1'
                }
            },
            plotOptions: {
                line: {
                    dataLabels: {
                        enabled: true
                    },
                    enableMouseTracking: true
                }
            },
            series: [{
                name: 'Voltage A',
                data: BF1
            },
            {
                name:'Voltage B',
                data: BF2
            }]
        });
    });

Результат отображается

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Проблема возникает из-за неправильного использования вашего $.getJSON() вызова.Вы передали два аргумента функции, определенной в .then(), но должны быть только один, потому что вы получили массив с двумя массивами, например:

$.getJSON('fetchdata.php')).then(function(data) {

...

}

Тогда вы сможетесм. data[0] и data[1] в определении вашей серии:

series: [{
      name: 'Voltage A',
      data: data[0]
    },
    {
      name: 'Voltage B',
      data: data[1]
    }
  ]

Живой пример: https://jsfiddle.net/abx6cepw/

С уважением!

0 голосов
/ 05 октября 2018

У вас есть только одна ось в ваших данных JSON.

Взгляните на https://graph.metaverse.farm/hashrate.html

Данные: https://graph.metaverse.farm/api/data.json

Код: https://graph.metaverse.farm/common.js https://graph.metaverse.farm/hashrate.js

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