如何限制gnuplot的自動縮放,以至於y-max爲例,它至少是某個值,它會自動縮放到固定的「極限」?Gnuplot自動縮放的最小和最大邊界
從查看文檔,我只看到如何修復軸的最小值或最大值,而另一個自動縮放。
About autoscaling on PDF page 93
如何限制gnuplot的自動縮放,以至於y-max爲例,它至少是某個值,它會自動縮放到固定的「極限」?Gnuplot自動縮放的最小和最大邊界
從查看文檔,我只看到如何修復軸的最小值或最大值,而另一個自動縮放。
About autoscaling on PDF page 93
自4.6版以來,gnuplot提供了一種新的語法來指定自動縮放的上限和下限。對於你的情況下,你可以使用
set xrange [0:100 < * < 1000]
從文檔引用:
在正在執行自動縮放可以通過下界<lb>
或上限<ub>
或兩者被限制的範圍內。語法是
{ <lb> < } * { < <ub> }
例如
0 < * < 200
套<lb> = 0
和<ub> = 200
。
該語法可應用於最小值或最大值set *range
。
自動伸縮xmin
但保持其積極的,使用
set xrange [0<*:]
自動伸縮x
,但保持10〜50最小範圍:
set xrange [*<10:50<*]
參見文檔有關set xrange
以獲取更多信息。
我不認爲這是可能的,要麼你有自動縮放的NO-,MIN-或MAX-,或兩者軸即:
set yrange [FIXED_MIN : FIXED_MAX]
set yrange [ * : FIXED_MAX]
set yrange [FIXED_MIN : *]
set yrange [ * : ]
分別。
所以它看起來確實是這樣,而不是我能夠找到它。似乎我必須使用數據手動縮放 – varesa
在這種情況下,您可以過濾數據,讓gnuplot的做到這一點是正常的自動縮放:
set yrange [*:*]
plot 'mydatafile' u 1:(($2 >= YMIN && $2 <= YMAX) ? $2 : 1/0)
這幾乎是我所做的(但在gnuplot之外)。對不起,如果我讀錯了代碼,但是遺漏了YMIN以下的每個值?你可能會誤解我想要的東西(例如Ymin = 0,Ymax = 100-1000)。我通過添加單點數據來解決這個問題,並在YMIN處添加背景顏色(因此它是不可見的)。這給了我想要的效果。 – varesa
@varesa - 如果你使用的是gnuplot 4.6,還有'stats'命令,你可以將上面的過濾器和gnuplot定義的變量配對:'GPVAL_YMIN'和'GPVAL_XMIN',但現在我們開始稍微複雜一點。然而,「看不見」的觀點卻是一個有趣的想法 - 我喜歡它。 – mgilson
@mgilson Gnuplot 4.6在自動縮放中添加了這樣的上下限的新語法,如'set xrange [0:100 <* <1000]'。 – Christoph
由於人們似乎有意在這個問題上,我將添加我解決了這個結合的方式一個答案:
我通過在數據的開頭插入一個不可見標記來使自動縮放的最小值。這導致情節總是「展示」它,即使它不能被看見。
然後我在一個解析器腳本中實現了gnuplot的最大外部(也可能在它內部可能,看看mgilson的答案),我已經用它來準備gnuplot的數據。
實際上,在腳本中,我將所有「剪切」值添加到y = 0,並將它們設爲紅色。這樣我就會得到一個「警告」,值太大而不適合繪製。 (我的程序監視兩個主機之間的ping,並且沒有意義嘗試繪製5s +延遲=>我將其標記爲連接斷開)
你能說清楚自動縮放是什麼意思嗎?您是否想將ymax設置爲某個值,或者您是否想要調整數據以使其最大值具有某個值? – andyras
@andyras ymax的示例:ymax的最小值可以是100,最大值是1000.如果最高數據點是50,那麼ymax將是100.它將自動調整爲最大值爲1000的值。之後,值將被切除。 – varesa