簡體   English   中英

Flot 在 X 軸刻度上重新縮放 Y 軸最小值/最大值

[英]Flot Re-scale Yaxis min/max on X-axis scale

我有一個很長的 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 min/max 尊重它們。 所以你的選擇是:

  1. 將系列數據子集到所需范圍,並讓浮動縮放 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();

編輯

這是一種可能的解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM