我使用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>
答案 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时间戳开始。