2017-08-24 68 views
1

我有一個數據文件,y軸的數據在第三列。我想有x1的第一列和x2的第二列給出的比例。標準的方法是:gnuplot 2 x軸從數據點

plot data u 1:2 axes x1y1, data u 1:3 x2y1 

但是,這創造了兩個圖,這是我想避免的。當然,人們可以用顏色或其他一些骯髒的技巧做出上述工作。它使整個劇情代碼非常繁瑣。另一個不錯的方法是使用multiplot,建議here。但這不是我的目標,因爲我想擁有真正的x2軸。

我想到的另一種方法是設置x2range,但這意味着要去源文件並找出最小和最大或使用gnuplot中的一些統計數據(這對於這樣一個簡單的事情來說感覺像浪費時間) 。

有沒有比上述更簡單優雅的方法? (我特別關注解決方案寫得很短,繪圖可以由幾個(> 5)數據集組成,並且我要避免繪製每個數據集兩次。

+2

你能否提供一些數據,以及你想達到的情節的例子?我對你的示例'plot'命令感到困惑 - 它從不將第二列與x2軸聯繫起來。爲什麼你不想要兩個地塊?如果您只是尋找x和x2軸之間靜態的,與數據無關的關係,則可以使用[set link](https://stackoverflow.com/a/26737333/7932936)。 – user8153

回答

0

這可以通過這種方式完成,通過告訴gnuplot的重新掃描,第二欄爲X2值,而僅無效的y值,第二個圖形文件:

set xtics nomirror 
set xrange [:] noextend 
set x2tics 
set x2range [:] noextend 
plot '/tmp/f.gdat' u 1:3 w l, '' u 2:(1/0) ax x2y1 

舉個例子,你可以繪製攝氏這個數據x和飛輪海的X2:

0  32  0 
30  86  1 
60  140  2 
90  194  3 

請注意,這隻會是明智的,如果列2是affin如果你知道仿射關係,使用set link就好多了。