如何在FLOT图中获得y轴最大范围

时间:2015-03-25 11:30:50

标签: flot

我想根据绘图数据更改y轴最大范围。因此,当我绘制图形时,它会根据最大绘图数据动态分配y轴范围。

目前,我没有在选项中定义Y轴的任何最大范围来实现上述目标。因此,它会根据数据绘图动态分配最大y轴范围

这是我上述实施的代码

       var source = [];
       var options = {
         xaxis: {
          ...
         }
         yaxis: {
         min: 0,
         axisLabel: "Y",
         axisLabelUseCanvas: false,
         axisLabelFontSizePixels: 12,
         axisLabelFontFamily: "Verdana, Arial, Helvetica, Tahoma, sans-serif",
         axisLabelPadding: 15
        },
      }

      plotObj = $.plot($("#placeholder"), source, options) ;

工作正常并动态分配y轴最大范围。但是,我已经包含了“jquery.flot.selection.js”插件来缩放所选区域。所以它使用下面提到的代码

缩放到ranges.yaxis.from到ranges.yaxis.to
 $("#placeholder").on("plotselected", function(ev, ranges) {
  //clearInterval(protection_timer);

  axes_data = plotObj.getAxes(); //get plotted axis ranges
  axes_data.xaxis.options.min = ranges.xaxis.from ;   
  axes_data.xaxis.options.max = ranges.xaxis.to ;       
  axes_data.yaxis.options.min = ranges.yaxis.from;
  axes_data.yaxis.options.max = ranges.yaxis.to;     

  ...
  plotObj.setData(graphData);
  plotObj.setupGrid();
  plotObj.draw();
});

现在,当用户双击占位符区域时,我需要重置beck图形。但是这次,由于y轴最大范围未定义,因此不会重置。如何获得y轴范围,它在缩放前显示?请给出一些建议

1 个答案:

答案 0 :(得分:0)

使用第二行扩展您的plotselected事件:

axes_data = plotObj.getAxes(); //get plotted axis ranges
axes_data.yaxis.originalMax = axes_data.yaxis.max; // save max value
axes_data.xaxis.options.min = ranges.xaxis.from;

并在doubleclick事件中重置图表添加相应的行:

axes_data.yaxis.max = axes_data.yaxis.originalMax; // restore max value