我有一个长的unixtime,值Array用于启动flot图表,还有一些按钮来改变比例,我似乎无法做的是让Y轴随着变化而变化X-规模。
这是一个示例图表: http://jsfiddle.net/U53vz/
var datarows = //Data Array Here
var options = { series: { lines: { show: true }, points: { show: true } },
grid: { hoverable: true,clickable: false, },
xaxis: { mode: "time", min: ((new Date().getTime()) - 30*24*60*60*1000), max: new Date().getTime(), }
};
function castPlot() {
window.PLOT = $.plot("#placeholder", [{ data: dataRows }], options
);
};
在官方示例中,缩放是自动的,并且在Y轴上未指定: http://www.flotcharts.org/flot/examples/axes-time/index.html
我能想到的唯一选择是循环数据集并在每次按下按钮时计算新的Y min / max。除非我打破一些非常明显的默认功能。
答案 0 :(得分:4)
在计算y-scale时,flot不会仅查看" viewable"数据,但整个数据集。由于数据点仍然存在,因此y min / max尊重它们。所以你的选择是:
如果您绘制得比现在更复杂(特别是如果您开始在其上设置点击/悬停事件),我还建议您切换到重绘而不是重新创建绘图。
var opts = somePlot.getOptions();
opts.xaxes[0].min = newXMin;
opts.xaxes[0].max = newXMax;
opts.yaxes[0].min = newYMin;
opts.yaxes[0].max = newYMax;
somePlot.setupGrid();
somePlot.draw();
<强> EDITS 强>
这里有一个solution。