gnuplot

*gnuplot


gnuplotとは


gnuplotはグラフ作成に使えるフリーソフト。 とっても簡単で理系の味方。 事前にテキストファイルにスクリプトを書いて、

load scriptname

とすればスクリプトに従って、作図してくれる。


アニメーションの設定


時間変化の計算を行った際、やはりその変化を動画にして確認したい場合は以下のようにする。

fnum = 99
if (exist("n")==0 || n<0) n=0

plot sprintf("rodat/ro%04d.dat",n) u 1:2 title sprintf("n=%d",n) w lp
if (n<fnum) pause 0.1; n=n+1;\
  reread

undefine n

ここでは画像が99個あり、それを次々にプロットすることでアニメーションにできる。


2軸の設定


ひとつのグラフの変域(x軸)は共通だが、値域(y軸)の異なる2つのデータをプロットしたい場合は y2軸の設定を行う。同様に、値域は共通だが、変域が異なる場合もx2軸を設定する。

# 座標系の指定
set ytics nomirror # 第一y軸の目盛は左側のみにする
set y2tics         # 第二y軸を描画することを指定
set grid           # 目盛線を描画することを指定
set xlabel "x-dayo"  # x軸の見出しを指定
set ylabel "y-dayo"           # 第一y軸の見出しを指定
set y2label "y2-dayo" # 第二y軸の見出しを指定
# 凡例
set key top left   # 凡例は左上に描画
set logscale x
set logscale y2
 
set yrange[1:3.5]
set y2range[1.0e-2:1.0e1]
set xrange[0.1:1.0e3]

set format y2 "10^{%L}"
set format x "10^{%L}"

# データ描画
plot 'test1.dat' u 1:2 w l ls 1 title "n", \
     'test2.dat' u 1:3 w l ls 2title "k" axes x1y2
 #  "axes x1y2"を指定することでデータファイルBの目盛は第一x軸と第二y軸にとることを指定

線の色


gnuplotのデフォルトの線の色は正直ダサい。 下記のサイト様にて、いけてるカラーセットが紹介されており、なかなかいけている配色だったので、メモ。 http://www.xmisao.com/2013/09/09/gnuplot-color-set.html

rgb "dark-violet"
rgb "#009e73" 
rgb "#56b4e9"
rgb "#e69f00"
rgb "#f0e442" 
rgb "#0072b2"
rgb "#e51e10"
rgb "black" 
rgb "gray50"

毎度スクリプトに書いてもよし、設定ファイル(.gnuplot)に書き込むもよし。


データファイルの演算


・データファイルの定数倍した値をプロットしたい 例えば、sample.datというファイルに

1.0 2.0 
2.0 4.0
3.0 9.0

という値が書き込まれていたとする。このときgnuplot上で

plot sample.dat

とすればグラフが書ける。 では次に2列目に値に100倍した値をプロットしたいときは

plot sample.dat u 1:($2*100.0)

とすれば、

1.0 200.0
2.0 400.0
3.0 900.0

という値をプロットしたグラフが得られる。便利やで〜。


縦線を入れたい


set arrow from x1,y1 to x2,y2 nohead

これで(x1,y2)から(x2,y2)に向かう線がかける。 (http://sobanomi2525.blogspot.jp/2013/10/gnuplot.html)


一度に複数の図を表示させたい


set muptiplot layout 2,2

(2,2)はグラフのレイアウトを指定している。


軸の詳細設定


・軸の小目盛りの細かさ

set mytics 10

とすれば、y軸の小目盛りを10目盛りにすることができる。

・羃乗で表示 x軸を羃乗で表示させたければ、

set format x "10^{%L}"

とすればよい。


Fitting


・fittingしようと思ったら起こられた時 もしfitコマンドでfittingを行おうとした際に、以下のエラーメッセージが表示されたら、

Undefined value during function evaluation
error during fit

この場合はfitting parameterの初期値を手で与えてやりましょう。 グラフのデータ点を見ながら、ちょうど良さそうなfitting parameter(例えばa,bとすると)

a=5.22; b=-0.23 (値は例です。この値はデータの数値を見て決めましょう)

として、もう一回fitコマンドを実行すれば正しくできる。


epsファイルのトリミング


・epsで画像を出力した際に、余計な余白が邪魔な時 まず, "epstool"を導入する. Homebrew userなら,

brew install epstool

でインストールできる. gnuplotで出力された画像ファイルをtest.epsとすると,

epstool --copy -b test.eps output.eps

とすると, 余白がトリミングされたファイルが生成できる.

最終更新:2016年10月07日 04:54
|新しいページ |検索 |ページ一覧 |RSS |@ウィキご利用ガイド |管理者にお問合せ
|ログイン|