如何限制缩放?

时间:2013-09-10 09:11:49

标签: zooming dygraphs

我想限制缩放的方式,它不可能缩放到某个值以上。例如。我的数据可以从几天/几个月缩短到15分钟,因此我想要显示的最小值(因此让用户只能放大这一点)就像显示那些15分钟的间隔值的4-5值。

我在另一个帖子中找到了自动收报机的可能性,但这没有帮助,因为它不会限制缩放的能力。是否有内置方法可以帮助我或其他方式限制zoomfactor?

3 个答案:

答案 0 :(得分:2)

zoomCallback: function (minDate, maxDate, yRange) {
// Calculate the difference between the values
var difference = maxDate - minDate;
// If difference smaller than 3 hours
if ((difference / 1000 / 60 / 60) < 3) {
    maxDate = new Date(minDate).setMinutes(180);

    g.updateOptions({
        dateWindow: [minDate, maxDate]
    });

     }
 },

这就是我想出来的,到目前为止它确实可行。我将不得不稍微调整一下这些值,但它的工作方式与大多数情况一样。该解决方案只有一个问题: 当我放大时,它会自动更改值,您可以在很短的时间内看到旧值呈现,然后更改为新值。对于用户体验而言,这并不是很好,但它不是一个破坏者。 还有其他事件是先前触发的吗?

答案 1 :(得分:1)

没有内置支持。但是你可以定义一个zoomCallback。这可以调用xAxisRange来确定新的缩放窗口是否可接受。如果没有,您可以使用一些可接受的替代方案来呼叫updateOptions({dateWindow: ...})

答案 2 :(得分:0)

我在dygraphs网站上发现了一个名为zoom的测试用例,它将缩放限制在mindate和maxdate之间。 Here is the link 您可以构建一个最小范围,因此用户始终可以看到至少4-5个数据点。