2012-03-08 78 views
3

我已經定義了一個函數f(),我想用於縮放,類似於logscale(但f()不是對數函數)。有沒有辦法自動執行,如set fscale ygnuplot中用戶定義的y軸的縮放比例(相當於set logscale y)

否則我試圖繪製縮放功能:

plot 'data' using 1:(f($2)) 

但隨後在y軸上的規模顯然是錯誤的。我可以用我的功能以某種方式重新調整y軸嗎?

我想避免必須手動設置所有的刻度和他們的標籤(因爲我將使用這個腳本的很多不同的情節)。

回答

5

如果您的數據變化不大,可以半自動通過預先繪圖命令由set ytics ({"<label>"} <pos> {<level>} {,{"<label>"}...)

只要用點的適當數量的插入抽動,這樣的情節就清楚了。

實施例:

$ cat ex.data 
0 0 
1 3 
2 2.2 
5 5 
7 1.2 
9 4 
12 9 
15 5 

所以我們的Y數據的範圍從0到9

$ gnuplot 

     G N U P L O T 
     Version 4.4 patchlevel 3 
     last modified March 2011 
     System: Linux 3.2.0-24-generic 

     Copyright (C) 1986-1993, 1998, 2004, 2007-2010 
     Thomas Williams, Colin Kelley and many others 

     gnuplot home:  http://www.gnuplot.info 
     faq, bugs, etc: type "help seeking-assistance" 
     immediate help: type "help" 
     plot window:  hit 'h' 

Terminal type set to 'wxt' 
gnuplot> f(x) = x**2 
gnuplot> set yrange [0:f(10)] 
gnuplot> set ytics ("0" f(0), "5" f(5), "7.5" f(7.5), "10" f(10)) 
gnuplot> plot "ex.data" u 1:(f($2)) w l 

其結果是:

example plot

+0

是的,我在發現這個命令手冊也是如此。不幸的是,在我的情況下,範圍確實有很大的不同:( – Grzenio 2012-05-09 08:44:16

+0

這對我來說非常適合,謝謝! – 2013-01-07 15:18:42