*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個あり、それを次々にプロットすることでアニメーションにできる。
ひとつのグラフの変域(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しようと思ったら起こられた時 もしfitコマンドでfittingを行おうとした際に、以下のエラーメッセージが表示されたら、
Undefined value during function evaluation error during fit
この場合はfitting parameterの初期値を手で与えてやりましょう。 グラフのデータ点を見ながら、ちょうど良さそうなfitting parameter(例えばa,bとすると)
a=5.22; b=-0.23 (値は例です。この値はデータの数値を見て決めましょう)
として、もう一回fitコマンドを実行すれば正しくできる。
・epsで画像を出力した際に、余計な余白が邪魔な時 まず, "epstool"を導入する. Homebrew userなら,
brew install epstool
でインストールできる. gnuplotで出力された画像ファイルをtest.epsとすると,
epstool --copy -b test.eps output.eps
とすると, 余白がトリミングされたファイルが生成できる.