0

我使用 zoomRange 函数为图形提供了缩放范围,通过该函数我可以限制放大和缩小的范围。它需要两个值,例如zoomRange[min, max]xaxis 和 yaxis。

我面临的问题是我应该给这个范围的正确值是什么。当我给出文档中给出的范围时,zoomRange[0.1, 10]缩放根本不起作用,当我给出一些随机值时,图形在 y 轴上缩放更多然后在 x 轴上缩放,反之亦然。

我给图表的值如下 -

xaxis: { 
        mode: "time",
        zoomRange: [240000, 2550000]
        },
yaxis: { 
        zoomRange: [2, 22]
       }

这些值是任意值,因此对于不同数量的数据表现不佳。

我希望 zoomRange 可以完美地用于我绘制的任何类型的图形的值。

PS:我几个月前问过这个问题,仍然没有解决这个问题

4

2 回答 2

3

我发现一个好的缩放行为是将 panRange 设置为数据范围的最小值和最大值,+/- ~10%。然后将 zoomRange 设置为 data*some-small-integer 的最小增量,并将 zoomRange 值设置为 null (panRange 将限制您可以缩小的距离,因此 zoomRange 上限并不是真正必要的)。例如,如果您的 x 数据的股票价格数据范围为 35 美元至 85 美元,并且每小时间隔,那么您可以执行以下操作:

xaxis: {
    mode: "time",
    // set the lowest (zoomed all the way in) range on the x axis to 2 hours
    zoomRange: [7200000, null],
    // set the pan limits slightly outside the data range
    panRange: [min_time*0.9, max_time*1.1]
},
yaxis: {
    // set the lowest range on the y-axis to 5 dollars
    zoomRange: [5, null],
    // set the pan limits slightly outside the data range
    panRange: [30, 90] 
}

因此,通过此示例,您将能够在 2 小时内一直放大到 5 美元的增量。当您一直缩小时,您将得到 panRange 参数中指定的范围。

将最小 zoomRange 设置得较低将允许您放大更多(但考虑到数据的粒度,没有多大意义)。并且将 panRange 限制设置得更宽将允许您缩小更多。

于 2014-12-29T23:25:31.617 回答
-1

不知道你有没有想到这个。无论如何,我发现了这个:

zoomRange ” 是可以发生缩放的间隔,例如使用 zoomRange: [1, 100] 缩放将永远不会缩放轴,因此 min 和 max 之间的差异小于 1 或大于 100。您可以设置他们为 null 以忽略。

在这里:http ://code.google.com/p/flot/source/browse/trunk/jquery.flot.navigate.js?r=186

于 2014-02-06T15:17:02.120 回答