Flot重置缩放

时间:2013-05-17 16:29:01

标签: flot

我正在使用带有鼠标滚动的Flot Charts来放大和缩小。我创建了一个按钮来调用zoomOut()并且它运行良好,但我找不到任何解决方法,我可以一直缩小,以便它看起来就像它第一次加载时一样。我不想重新加载那个容器,因为它使用ajax在刷新时从mysql中提取数据。

我用谷歌搜索但找不到任何东西。

3 个答案:

答案 0 :(得分:7)

您也可以设置双击以重置Flot图表的缩放功能。它将Flot图表重绘为其原始状态,并可与动态数据一起使用。

$("#placeholder").dblclick(function () {
plot = $.plot(placeholder, dataset, options);
});

答案 1 :(得分:4)

您可以将轴的范围设置为null。通过设置此项,将设置缩放级别,以便每个数据点都可见,就像默认缩放级别一样。

与其他解决方案不同,此解决方案不会构建一个全新的情节。

var axes = plot.getAxes(),
    xaxis = axes.xaxis.options,
    yaxis = axes.yaxis.options;
xaxis.min = null;
xaxis.max = null;
yaxis.min = null;
yaxis.max = null;

// Don't forget to redraw the plot
plot.setupGrid();
plot.draw();

答案 2 :(得分:2)

您可以保存初始轴范围并重绘您的绘图,如example中的导航。但是你的代码看起来像这样:

// do the zooming
plotObjectPointer = $.plot(placeholder, plotData,
    $.extend(true, {}, options, {
        xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to },
        yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to }
    }));

其中范围将是您的初始范围。为防止重复加载Ajax,您可以使用window.localStorage或其他var来存储plotData。