gnuplotメモ
他人の読むことを想定していない自分用メモ.
データファイルの扱い
gnuplotに食べさせるデータは改行2つでデータセットの区切り,改行1つでその中でのブロックの区切りを表す.
plot "dat" index 2 every :::5::5 using 1:2 notitle w lp
でファイル"dat"の3番目*1のデータセットのうちの6番目のブロックをプロットできる.
そういう構造のないデータファイルなら気にしなくていいけど.
index 1:7:3とか書くと1から7までのデータが3つおき,つまり(1,4,7)のプロットがされる.
everyは
every 行増分:ブロック増分:開始行:開始ブロック:終了行:終了ブロック
という書式,ただし最後は数値(整数)で終わらなければならない(いらないコロンは省略).
usingの番号は x軸:y軸 となっているが ( ) でくくってやるといろいろ演算できたりする:
plot "" using ($1**2):($2 * $3)
と書けば1列目の2乗*2に対して2行目と2行目の積をプロットできる.ちなみに直前に使ったファイルはこんな感じで""で指定できたりする.他にも色々省略できたりする.plotというコマンドもpだけでちゃんと解釈してくれたり,with linespointsはw lpとかけたり.
range
set yrange [-5:5]
とかを解除したいときはset yrange [*:*]とする.
logでプロットする時は
set logscale xy
とか.
出力
set terminal x11
set terminal postscript eps set output "foo.eps"
set terminal epslatex set output "fool.tex"
上から普通のx11出力,eps出力,LaTeX用出力(文字列がLaTeX形式で出力される).
最後のやつではlatex文書中で\input{foo.tex}などとすることになる.ただしソースとinputしようとするファイルが別ディレクトリ,例えばfigureというサブディレクトリの場合はfoo.tex中でfoo.epsを指定している部分を
\put(0,0){\includegraphics{foo}}%
↓
\put(0,0){\includegraphics{figure/foo}}%
としないとエラーになるというバグ的ななにかが.