Как мне настроить массивы с помощью диаграмм Google добавить строки - PullRequest
0 голосов
/ 09 сентября 2018

Я пытаюсь настроить страницу гистограммы Google по этим ссылкам ...

https://developers.google.com/chart/interactive/docs/gallery/scatterchart и создать таблицу данных здесь ... https://developers.google.com/chart/interactive/docs/drawing_charts#chart.draw

По сути, у меня работает базовая демоверсия. Теперь я пытаюсь заполнить таблицу данных данными о времени и дате, как это ... добавить строки, как это ...

// Create the data table.
  var data = new google.visualization.DataTable();
  data.addColumn('number', 'Time');
  data.addColumn('number', 'Date');
  data.addRows([

// этот необработанный текст работает [22,5], [10,24], [9,5], [10,6], [10,7], [7,8]

// но мой var - datetime из базы данных не работает // Ошибка: каждая заданная строка должна быть либо нулевой, либо массивом.

Дата и время ]);

Если я введу это вручную:

[22,5], [10,24], [9,5], [10,6], [10,7], [7,8]

работает.

Теперь я пытаюсь выполнить запрос к базе данных, а затем выполнить цикл .each для получения данных ...

//Query the database...
// query here..
datetime = "";
$.each(data, function(key, value) {
//note: each row comes in from the database like: 
//thedate: "02/17/2018" thetime: "18:00:00"
//then I split to just get basic hour and day
t = value.thetime.split(":")    
d = value.thedate.split("/")    
//and create as numbers
tnum =  parseInt(t[0]);
dnum =  parseInt(d[1]); 
//and add to the datetime var
datetime += "["+ dnum + ","+ tnum + "],"
// there was more code to eliminate last ","
// then the end result var datetime looks something like:
//[22,5],[10,24],[9,5],[10,6],[10,7],[7,8] 

Если я вставлю это вручную в область добавления строк - это будет работать, однако, если просто вставить переменную datetime в ту же область добавления строк. ошибка говорит:

Ошибка: каждая заданная строка должна быть либо нулевой, либо массивом.

В: Я уверен, что мне не хватает чего-то базового, например, на графике нужны числа, которые могут отображаться в виде строк, или мой массив неверен или что-то еще. Есть что-то, что нужно изменить, чтобы график принимал мою переменную datetime?

1 Ответ

0 голосов
/ 10 сентября 2018

похоже, что вы пытаетесь создать массив из строки,
вместо этого используйте фактический массив, который addRows ожидает ...

datetime = [];
$.each(data, function(key, value) {
  t = value.thetime.split(":")    
  d = value.thedate.split("/")    
  tnum =  parseInt(t[0]);
  dnum =  parseInt(d[1]); 

  datetime.push([dnum, tnum]);
});

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