2012-03-08 7 views
3

logscaleと同様の方法で(f()は対数関数ではありません)スケーリングに使用したい関数f()を定義しました。 set fscale yのように自動的に行う方法はありますか?y軸のgnuplotでのユーザー定義スケーリング(logscale yの設定と同じ)

そうでなければ、拡大縮小機能をプロットしてみました:

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

をが、その後Y軸の目盛りは明らかに間違っています。私の関数を使ってy軸を何とか再スケールすることはできますか?

すべてのティックとそのラベルを手動で設定する必要はありません(このスクリプトはたくさんの異なるプロットで使用するため)。

答えて

5

あなたのデータはあまり変化していない場合は、プロットが明らかになるようにするだけのポイントの適切な数を使用しset ytics ({"<label>"} <pos> {<level>} {,{"<label>"}...)

でplotコマンドを付加することで半自動的に目盛りを挿入することができます。

例:

$ 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

+0

これは私にとって完璧です。ありがとう! –

関連する問題