如何在Flot条形图中停止缩小?

时间:2012-06-06 06:07:05

标签: javascript jquery flot

我使用Flot绘制一些条形图。如何配置缩放,以便在用户缩小时,图表看起来像顶部的图表而不是底部的图表?换句话说,我不希望用户在显示图表的所有数据时继续缩小。我还想限制图表在X轴上显示0以下的任何值。请参阅下面图表的代码和图片:

<#macro barChart2 var formatFunction ticks="" optionLegend="{ show: false }">
  var options = {
    yaxis: {
      tickFormatter: ${formatFunction}
    },
    series: {
      stack: 0,
      bars: { 
        show: true,
        barWidth: 0.9,
        align: "center"
      }
    },
    grid : { 
      hoverable: true 
    },
    xaxis: {
      <#if "${ticks}" != "">
        ticks: ${ticks}
      </#if>
      mode: "time",
      timeformat: "%b %d, %H:%M %P"
    },
    pan : { 
      interactive: true 
    },
    legend: ${optionLegend}
  };

  var plot${var} = $.plot($("#chart${var}"), data, options);

  $("#zoomIn${var}").click(function(e) {
    e.preventDefault();
    plot${var}.zoom();
  });

  $("#zoomOut${var}").click(function(e) {
    e.preventDefault();
    plot${var}.zoomOut();
  });
</#macro>

enter image description here

1 个答案:

答案 0 :(得分:2)

我建议您查看可以使用导航插件设置的zoomRange and panRange parameters 。您可以为轴指定:

xaxis: { zoomRange: [0.1, 10], panRange: [-10, 10] },
yaxis: { zoomRange: [0.1, 10], panRange: [-10, 10] }

其中zoomRange设置缩放限制。在这种情况下,最小值和最大值之间的差值永远不会低于0.1,并且永远不会超过10. panRange告诉内容保持在一定范围内,所以在这种情况下,两个轴都不会平移到下面 - 10或以上10.

我不确定如何使用时间序列数据执行此操作,但请尝试使用javascript时间戳开始。