В интересах ясности и краткости, я опустил некоторые вещи - такие, как процесс создания.
Вы могли бы сделать что-то похожее, чтобы ограничить минимальный диапазон.
g = new Dygraph(
... your parameters ...
);
window.intervalId = setInterval(
function(){
var extents = g.yAxisRange();
var lowerExtent = extents[0];
var upperExtent = extents[1];
if(upperExtent > MY_MAX_DESIRED){
var range = [lowerExtent, MY_MAX_DESIRED];
g.updateOptions('valueRange': range);
}
},
500
);
Используя вышеуказанное решение, вы заметите полусферу «сбой» при масштабировании при заданном диапазоне. В качестве альтернативы, вы можете также использовать zoomCallBack, указанный при создании объекта графа:
g = new Dygraph(
document.getElementById("div_g"),
[[0,0]],
{
zoomCallBack: function(minDate, maxDate, yRanges){
var extents = yRanges;
var lowerExtent = extents[0];
var upperExtent = extents[1];
if(upperExtent > MY_MAX_DESIRED){
var range = [lowerExtent, MY_MAX_DESIRED];
g.updateOptions('valueRange': range);
}
}
}
);
Одно предостережение, я не проверял вышеуказанные решения. Я просто считаю, что они должны работать. Удачи!
Я бы рекомендовал подход «zoomCallback». – danvk