Невозможно преобразовать данные для рендеринга линейных диаграмм: Highcharts + React - PullRequest
0 голосов
/ 02 мая 2019

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

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

Справка будет оценена.

Объект

{"data":
        [
             {"currentVal":3488,"prevVal":0,"timestamp":1554181200000},
             {"currentVal":3453,"prevVal":3,"timestamp":1554481200000},
             {"currentVal":3456,"prevVal":2,"timestamp":1554581200000}
        ]
}

В соответствии с documnentaion данные линейных графиков принимают следующую структуру.

"data": [
    {
      "name": "currentVal",
      "data": [ 7,7,8]
    },
    {
      "name": "prevVal",
      "data": [1,6,7]      
    }
  ]
}

Я бы хотел помочь в преобразовании объекта, упомянутого в верхней части

1 Ответ

1 голос
/ 02 мая 2019

Самый простой способ преобразования объекта:

var obj = {
  data: [{
    "currentVal": 3488,
    "prevVal": 3000,
    "timestamp": 1554181200000
  }, {
    "currentVal": 3453,
    "prevVal": 3123,
    "timestamp": 1554481200000
  }, {
    "currentVal": 3456,
    "prevVal": 3341,
    "timestamp": 1554581200000
  }]
};

Highcharts.chart('container', {
  xAxis: {
    type: 'datetime'
  },
  series: [{
    name: "currentVal",
    data: obj.data.map(elem => [
        elem.timestamp, elem.currentVal
    ])
  }, {
    name: "prevVal",
    data: obj.data.map(elem => [
        elem.timestamp, elem.prevVal
    ])
  }]
});

Демо:

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