highcharts не читает данные, работает с поддельными данными - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь визуализировать напряжение, в массиве 1k элементов, но сейчас я тестирую его на первых 10, дело в том, что он ничего не отображает, что более интересно, когда я использую фиктивную дату, котораязакомментирован сейчас, он показывает график правильно.Я подумал, что, возможно, есть какая-то проблема с массивом, поэтому попытался использовать Array.from, но это также не дало эффекта, вот мой код:

.then(function(res) {
                    var averageVoltage = []
                    var inputVoltage = []
                    var date = []
                    for (var i = 0; i < 10; i++) {
                        if (res[i].average_volatage !== undefined) {
                            averageVoltage.push(res[i].average_volatage)
                            date.push(res[i].timestamp)
                        }
                    }
                    console.log(averageVoltage)
                    console.log(date)

                    Highcharts.chart('battery_chart', {
                        chart: {
                            type: 'line'
                        },
                        title: {
                            text: id
                        },
                        yAxis: {
                            title: {
                                text: 'Measurement'
                            },
                        },
                        xAxis: {
                            categories: date
                        },
                        series: [{
                            name: 'Average Voltage',
                            data: averageVoltage
                            // data: [12283, 12283, 12281, 12280, 12282, 12283, 12281, 12282, 12281, 12280]
                        }, 
                    ]
                    });

, и вот как массив отображается в console.log: enter image description here

1 Ответ

1 голос
/ 11 июня 2019

Ваш массив должен отображаться как [12283, 12281, 12280, etc.] в консоли, вместо этого он отображается как [Number, Number, ...].Попробуйте изменить эту строку:

averageVoltage.push(res[i].average_volatage)

на:

averageVoltage.push(parseInt(res[i].average_volatage))

Кроме того, вместо использования дат в качестве категорий, было бы проще использовать ось даты и времени старшей диаграммы.Это позволит вам манипулировать отображением даты, иметь несколько рядов с разными временными метками на одном графике и многое другое.Чтобы заставить это работать, вы можете сделать это:

.then(function(res) {
  var averageVoltage = []
  var inputVoltage = []
  for (var i = 0; i < 10; i++) {
    if (res[i].average_volatage !== undefined) {
      averageVoltage.push({x: new Date(res[i].timestamp).getTime(), y: parseInt(res[i].average_volatage)})
    }
  }
  console.log(averageVoltage)

  Highcharts.chart('battery_chart', {
    chart: {
      type: 'line'
    },
    title: {
      text: id
    },
    yAxis: {
      title: {
        text: 'Measurement'
      },
    },
    xAxis: {
      type: 'datetime'
    },
    series: [{
      name: 'Average Voltage',
      data: averageVoltage
    }, 
    ]
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...