2010-12-16 736 views
27

E.g.如果我有一個圖,並且想沿X軸每隔10個單位添加垂直線。如何在gnuplot中繪製垂直線?

+0

的可能重複的[gnuplot的:在特定位置上的垂直線(http://stackoverflow.com/問題/ 4499998/gnuplot-vertical-lines-at-specific-positions) – 2013-07-02 05:44:46

回答

34

這裏是我的perl腳本片段做到這一點:

print OUTPUT "set arrow from $x1,$y1 to $x1,$y2 nohead lc rgb \'red\'\n"; 

正如你可以從上面的猜測,它實際上是畫成「無頭」箭頭。

+7

謝謝!只是爲了總n00bs的好處並且是迂腐的,在y = 0到y = 100之間繪製x = 1的垂直線的完整示例將僅僅是:將箭頭從1,0設置爲1,100 nohead lc rgb 'red' – JJC 2013-12-06 01:53:35

+0

同意....... :) – Throwback1986 2013-12-06 04:53:51

11

或者你也可以這樣做:

p '< echo "x y"' w impulse 

x和y是該點的座標,你畫一個豎線

+0

這似乎是更乾淨的做法。如果你想繪製多條垂直線,你也可以使用''''虛擬文件 – hertzsprung 2014-07-28 11:30:22

+0

這裏沒有工作。 – KcFnMi 2017-06-26 02:00:40

+0

這給出了警告:跳過沒有有效點x範圍的數據文件是無效的。不知道爲什麼。 – 2018-01-20 15:53:49

9

可以使用grid功能的第二未使用的軸x2 ,這是繪製一組規則間隔線的最自然的方式。

set grid x2tics 
set x2tics 10 format "" scale 0 

一般來說,網格的繪製位置與座標軸上的位置相同。如果線的位置不對應於抽動位置,gnuplot提供了一組額外的抽搐,稱爲x2ticsformat ""scale 0隱藏了x2tics,因此您只能看到網格線。

您可以像往常一樣使用linewith,linecolor來設計線條樣式。

+0

附加說明:如果使用x2tics來控制網格,則必須確保x2axis的範圍與x軸的值相同。如果您使用自動縮放,則無法保證。修正了顯式集x2range [x:y]。 – Ben 2017-05-14 09:09:24

16

從Gnuplot文檔。要繪製從底部的垂直線,以在x = 3的曲線圖的頂部,使用:

set arrow from 3, graph 0 to 3, graph 1 nohead

+1

鏈接到doc:http://gnuplot.sourceforge.net/docs_4.2/node156.html – 2017-06-20 04:33:45