Я использую jqPlot для построения некоторых динамических графов.
jqPlot принимает 2D-массив для своих данных, таким образом:
$.jqplot('chartdiv', [[[1, 2],[2,5.12],[3,13.1],[7,33.6],[9,85.9],[21,219.9]]],
{ title:'progress',
axes:{yaxis:{min:0, max:240}},
series:[{color:'#5FAB78'}]
});
Первое число - это ось x (в этом случае 1,2,3,7,9 и 21), второе число - ось y. chartdiv - это элемент html, в котором отображается граф, а остальная часть - сама по себе.
Я хочу взять данные из своего локального хранилища и нажать на массив, который позволит мне отображать его в виде графика, и я не могу понять, как это сделать.
Если мой массив объявлен с помощью
var graphdata = [];
как я вставляю данные в него? Я использую такой цикл, чтобы перейти к контенту:
var dt = new Date();
var today = dt.getDateKey();
var df = getStartDate(period);
var datefrom = df.getDateKey();
var graphdata = [];
alert("Today is " + today + " and the graph will be calculated from " + datefrom);
while (df<=dt) {
dataObject = JSON.parse(localStorage.getItem(df.getDateKey()));
if(dataObject){
var dateposition = df.getDateKey();
console.log("Date is " + dateposition);
console.log("The Weight is " + dataObject.savedobs1);
graphdata.push([dateposition,dataObject.savedobs1]);
}
df.setDate(df.getDate() + 1);
};
console.log("Graph data " + graphdata);
Мне нужно получить дату и данные на диаграмме, и я не могу разобраться, как получить ее в правильном формате. Консоль.log данных графа просто дает:
Graph data ,26/04/2014,118,27/04/2014,116,28/04/2014,116,29/04/2014,105
Ваша текущая настройка добавляет ваши данные после первого пустого массива в вашем массиве верхнего уровня.
Если вопрос заключается в том, как передавать данные в этот вложенный массив, просто заверните его, когда закончите.
// create an empty array
var list = [];
// push data
list.push([1,2]);
list.push([3,4]);
list.push([5,6]);
// wrap the result before you return it
console.log([list]);
// returns [[[1,2],[3,4],[5,6]]]
выход: