dygraphs - 限制缩放时y轴范围的变化

时间:2015-12-31 10:00:11

标签: javascript dygraphs

当我缩放图表时,Y刻度会自动变化,以选择适合x限制值的范围。

我知道valueRange param我可以修复范围,但我正在寻找一个选项来定义一些最大范围。

因此缩放时Y刻度会发生变化,但刻度受某些参数的限制

2 个答案:

答案 0 :(得分:0)

为了清楚和简洁起见,我省略了一些事情 - 比如创作过程。

你可以做类似的事情来限制最小范围。

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);
            }
        }
    }
);

有一点需要注意,我没有测试过上述解决方案。我只相信他们应该工作。祝你好运!

答案 1 :(得分:0)

谢谢你! 我试过用你的建议 我有一些问题:

"http://jsfiddle.net/stojak/zL6es924/4/"

我的目标:例如,当数据中的y值介于10和11之间时,我想将Y放大到0(10-10)到21(11 + 10) 代码几乎正常工作,但我不知道怎么说让我重置我的valueRange。 结果是在每次缩放动作之后,范围增加。