1

我正在使用 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>

在此处输入图像描述

4

1 回答 1

2

我建议您看一下您可以使用导航插件设置的zoomRange参数panRange您为轴指定那些,例如:

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

其中zoomRange设置缩放的限制。在这种情况下,最小值和最大值之间的差值永远不会低于 0.1,也永远不会超过 10。panRange告诉内容保持在一定范围内,因此在这种情况下,两个轴都不会低于 -10 或高于 10。

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

于 2012-06-06T07:07:26.277 回答