2014-10-31 56 views
1

我的問題是關於如何自動將標籤放置在繪圖邊緣以超過繪圖範圍的數據點。如果繪製的點偏離繪圖的比例以使繪圖不再有用,但仍然需要注意,那麼可以對這些點進行繪製。Gnuplot - 爲超過數據範圍的點設置標籤

例如,假設我有所謂的「MYDATA.DAT」的數據文件,看起來像這樣:

1 2 
3 3 
7 4 
8 6 
50 8 

如果我使用

set yrange [0:10] 
set xrange [0:10] 
plot 'mydata.dat' w lp pt 1 

那麼最後繪製數據點(50,8)不會被繪製。但是要承認,有繪製的範圍之外的一個點,一個標籤,點會使用

set label "" at 10,8 point pt 1 
set label "50" at 9.75,8 right 

情節被放置在邊緣(即,在10,8)是否有辦法來自動這個流程?一種讓GNUplot讀取整個數據文件並在曲線邊緣設置點和標籤的方法?

回答

1

要繪製超出指定範圍的所有點,您需要使用labels繪圖樣式的第二個繪圖命令。

using聲明中,您可以檢查點之外的範圍。如果是,你將有相應的標籤點,否則你跳過點(使用1/0作爲值):

set xrange [0:10] 
set yrange [0:10] 
set linetype 1 pt 7 
plot 'mydata.dat' w lp lt 1, \ 
    '' using ($1 > 10 ? 10 : 1/0):2:(sprintf('%d', $1)) with labels right offset -2,-0.25 point lt 1 notitle 

在這裏,我只檢查的X值大於規定的最大X-較大值。也許你需要它爲了適應還搭上離羣值y方向或那些小於0

enter image description here

+0

就像一個魅力,謝謝! – 2014-11-01 23:19:56