我有一个很长的 unixtime,用于启动浮点图的值数组,以及一些用于更改比例的按钮,我似乎无法做的是让 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 最小值/最大值。除非我破坏了一些非常明显的默认功能。
最佳答案
在计算 y 尺度时,flot 不仅查看“可视”数据,还查看整个数据集。由于数据点仍然存在,因此 y 最小值/最大值尊重它们。所以你的选择是:
- 将系列数据子集化到所需范围,并让 flot 缩放 x 和 y。
- 按照您的建议,计算您自己在 y 轴上的最小值/最大值。
如果您的绘图变得比现在更复杂(特别是如果您开始在其上设置点击/悬停事件),我还建议您切换到重绘而不是重新启动您的绘图。
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();
编辑
这是一个可能的 solution .
关于javascript - Flot Re-scale Yaxis min/max on X-axis scale,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24769210/