Флот-диаграмма не нарисовать мои очки
На этом снимке проблема не решена. Я пытаюсь нарисовать график с данными датчиков как мои точки (X, y). Когда загружается веб-страница, он считывает файлы csv и отправляет эти данные на вызов ajax из моего кода. Это то, что возвращает мой код:
var myData = new Stats {
Time = dataContainer.time,
LhXVals = dataContainer.lhXVals,
LhYVals = dataContainer.lhYVals,
LhZVals = dataContainer.lhZVals,
RhXVals = dataContainer.rhXVals,
RhYVals = dataContainer.rhYVals
};
Вот как выглядит мой класс Stats. Я анализирую данные и сохраняю их в списках.
Затем я отправляю это на вызов ajax. Вот моя функция успеха Аякса:
var time = new Array();
var lhXVals = new Array();
var cumulative = new Array();
var data2;
success: function (result) {
time = result.d.Time; //Time is a List<double>
lhXVals = result.d.LhXVals; //Left-Hand-X-Values is a List<double>, both are the same size
//check if time and lhXVals are empty, if not proceed
if (time.length > 0 || lhXVals.legnth > 0) {
for (var i = 0; i < time.length; ++i) {
//only grabbing little bit of data just to test,
//only taking first 2 elements
if (i == 6)
break;
//use the time data ex:(510.2838439) as my X-axes
//use the left-hand-X-Values ex:(23.9384384) as my Y-axes
debugger;
cumulative.push([parseFloat(time[i]), parseFloat(lhXVals[i])]);//data2 was a manually populated example i used before
data2 = [[4.53123342, 0], [4.9039293, 24.89323233], [6, 0], [6, -12.134], [8, 0], [8, 6.932]];
//an index in the "cumulative" array would look like this:
// [0]: [510.2838439,23.9384384]
}
}
updateOnce(cumulative);
функция updateOnce(cumulative);
принимает мой совокупный массив точек, которые я использую в flot.setData()
метод, чтобы нарисовать новый график.
function updateOnce(cumulative) {
debugger;
plot.setData([cumulative]);
plot.draw();//draws nothing
}
Однако большая проблема заключается в том, что, когда plot.draw();
получает обращается нет ничего на моем графике, и я понятия не имею, почему. Я пробовал все, что мог придумать. Я попытался разобрать данные для float и оставить его, но ничего не меняя. Мои данные в «кумулятивном» хранятся точно так же, как ручной массив (var data), который я создал для графических точек, но он просто не работает, и я вытягиваю свои волосы.
EDIT Комментарий ниже. Я изначально поставил его так:
function updateOnce(cumulative) {
debugger;
plot.setData([cumulative]);
plot.draw(); //draws nothing
}
//implementing getData Last
var plot = $.plot("#placeholder", [getData()], {
series: {
shadowSize: 0 // Drawing is faster without shadows
},
yaxis: {
min: -50,
max: 50
},
xaxis: {
show: true
}
});
я возвращаю данные, которые вручную задать массив точек (х, у), так что будет что-то нарисовать первый на графике, что он делает. Затем, когда ajax, наконец, возвращает некоторые данные, я инициирую перерисовку с возвращенными данными.
Как вы изначально рисуете график? Вам нужно будет вызвать 'plot.setupGrid()' после 'setData', чтобы пересчитать ваши оси. – Mark
Я добавил начальную настройку в вопрос внизу – user1084319
вы можете написать это как ответ, чтобы я мог его принять? Я не понимал, что это изменило ось, как только я добавил .setupGrid(), она сработала: P. Спасибо, много! – user1084319