javascript - Flot Re-scale Yaxis min/max on X-axis scale

标签 javascript jquery flot

我有一个很长的 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 最小值/最大值尊重它们。所以你的选择是:

  1. 将系列数据子集化到所需范围,并让 flot 缩放 x 和 y。
  2. 按照您的建议,计算您自己在 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/

相关文章:

javascript - 合并并导出多个文本区域?

javascript - 如何在同一列Javascript中对数字和文本进行排序

javascript - 从文本区域中删除换行符

javascript - jQuery 一起从多个选择中获取值

jquery - 流程图从mysql ajax js中提取数据

javascript - d3.js - 防止强制定向图中父/其他组的 "clustering"

javascript - 嵌入式YouTube视频无法在全屏模式下运行

javascript - 在 meteor 表格中使用集合助手

javascript - Flot 不适用于 node.js

javascript - 无法使用 float 绘制图表