Как отобразить динамические объектные массивы в диаграмму с помощью Anychart.js - PullRequest
0 голосов
/ 22 октября 2019

То, что я пытаюсь сделать, это я хочу отобразить диаграмму, основанную на моих динамических данных, я использовал Angular ForEach для циклического прохождения по всему массиву моих объектов, см. Мой код ниже:

var parse = JSON.parse(jsondata);

angular.forEach(parse, function (value, key) {
  var dataSet = anychart.data.set(value);
  var chart = anychart.column();
  var series = chart.column(value);
  chart.title("Data Sets: Array of Objects");
  chart.container("container");
  chart.draw();
});

это правильно отображаетсчетчик моего графика, но данные каждого массива объектов не отображаются, см. рисунок ниже

enter image description here

но если поместить статические данные, подобные этому:

var data = [
    {x:"January", value: 12000},
    {x:"February", value:  15000},
    {x:"March", value:  16000},
    {x:"April", value:  14000},
    {x:"May", value:  10000}
  ];

диаграмма отображается правильно.

Может кто-нибудь помочь мне с этим? Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

График может работать с динамическими данными. Все, что вам нужно, это применить новые данные к существующему набору данных, например:

dataSet.data(newData);

И все! Нет необходимости воссоздавать диаграмму / серию / набор данных.

0 голосов
/ 23 октября 2019

Все зависит от содержимого value внутри цикла. Вы также применяете value для серии и набора данных. Если вы используете набор данных, вы должны применить value к данным, сопоставить данные, а затем применить сопоставление к серии. Например:

  var dataSet = anychart.data.set(value);
  var mapping = dataSet.mapAs({'x': 0, 'value': 1}); // for example
  var chart = anychart.column();
  var series = chart.column(dataSet);

Отображение зависит от ваших данных. Если value содержит готовые к использованию данные, которые соответствуют отображению по умолчанию, вы можете применить их непосредственно к серии.

Можете ли вы поделиться контентом value?

...