Обновление данных в Morris.LineChart
Добрый день.
Для отображения результатов измерений (x:timestamp, у:[value1, value2]) я использую morris.js LineChart.
Все получается хорошо - данные масштабируются, выводится легенда, на графике две линии для []value1 и []value2.
Но когда я хочу получить следующую порцию данных - начинается проблема с масштабированием: одна серия вообще пропадает, вторая жутким образом обрезается. LineChart обновляется при помощи метода setData(dataArray)
var graph;
var gdata = [];
graph = Morris.Line({
element: 'stat',
data: gdata,
xkey: 'x',
parseTime:false,
xLabels: 'second',
ykeys: ['V1','V2'],
labels: ['Val1', 'Val2']
});
$.get("http://host/getdata", function(data) {
for (var i=0;i<data.length;i++) {
t = new Date(data[i]["times"] * 1000).asTimeString('h:i:s');
tmp = {x:t, V1:data[i]["val1"], V2:data[i]["val2"]};
gdata.push(tmp);
}
}).done(function(){
graph.setData(gdata)
});
$('#next').click(function(){
gdata = [];
$.get("http://host/getdata?page="+next_page, function(data) {
for (var i=0;i<data.length;i++) {
t = new Date(data[i]["times"] * 1000).asTimeString('h:i:s');
tmp = {x:t, V1:data[i]["val1"], V2:data[i]["val2"]};
gdata.push(tmp);
}
}).done(function(){
graph.setData(gdata)
});
});
$('#prev').click(function(){
gdata = [];
$.get("http://host/getdata?page="+prev_page, function(data) {
for (var i=0;i<data.length;i++) {
t = new Date(data[i]["times"] * 1000).asTimeString('h:i:s');
tmp = {x:t, V1:data[i]["val1"], V2:data[i]["val2"]};
gdata.push(tmp);
}
}).done(function(){
graph.setData(gdata)
});
});
Есть соображения как можно решить эту проблему с масштабированием?
Источник: Stack Overflow на русском