Gnuplot の使い方

ver. 2018/5/10
グラフを作成するソフトウェアです。
起動

端末で gnuplot とタイプすれば起動します。($はプロンプトなので入力しない)$ gnuplot
起動後 version などが表示され、gnuplot>とプロンプトが出ます。
終了

exit あるいは quit で終了できます。
関数のプロット

関数をプロットしたい場合はplot xとすると y=x が適当な範囲でプロットされます。累乗は**、組み込み関数は abs(x),sin(x), cos(x), tan(x), exp(x), log(x), asin(x), acos(x), atan(x)などがあります。複数の関数を同時にプロットしたい場合はplot sin(x), cos(x)のようにコンマで区切ります。
データのプロット

データファイル"data.dat"に以下のようにデータが並んでいるとします。
x0a0b0c0d0e0f0x1a1b1c1d1e1f1x2a2b2c2

d2e2

f2x3

a3b3c3d3e3

f3

.....
基本

横軸 x, 縦軸 a(x)でグラフをプロットしたい場合はplot "data.dat" using 1:2とします。 using は u と略すこともできます。1:2 は(横軸に使う列:縦軸に使う列)で1す。
横軸 x、縦軸 c(x)の場合はplot "data.dat" u 1:4とします。
横軸 x、縦軸 a(x)+4*b(x)の場合はplot "data.dat" u 1:(($2)+4*($3))とします。
線で結ぶ

通常はデータは点としてグラフ上に表示されます(with points (w p))
データ同士を線で結びたい場合は with lines オプションをつけます。
plot "data.dat" u 1:2 with lines
with lines は w l と略すこともできます。
データを点で書いた上で線で結びたい場合はplot "data.dat" u 1:2 with linespoints
with linespoints は w lp と略すこともできます。
凡例

凡例でプロットしたデータポイントや線に名前を付ける場合は title オプションをつけます。
plot "data.dat" u 1:2 w l title "a(x)"title は t と略すこともできます。
複数データのプロット

a(x)と b(x)と c(x)を一つの図にプロットしたい場合(横軸 x はデータファイルの一列目)
plot "data.dat" u 1:2 w l t "a(x)", "data.dat" u 1:3 w l t "b(x)", "data.dat" u 1:4 w lt "c(x)"などとカンマで区切って列挙します。データの入っているファイルが異なる場合もファイルを指定すれば同様にプロットできますが、横軸と縦軸の値は一つのファイルの値を参照する必要があります。
長くなった場合は改行して続けることもできます。\(バックスラッシュ)記号で改行できますが、\の後ろにスペースを含む余分な文字があるとエラーがでます。上と同じコマン
ドは2plot \"data.dat" u 1:2 t "a(x)" w l, \"data.dat" u 1:3 t "b(x)" w l, \"data.dat" u 1:4 t "c(x)" w lとも書けます。
描画範囲の変更

データをプロットした場合、そのデータが含まれる範囲が自動的に設定されますが、手動で領域を変更できます。横軸(x 軸)の範囲は
set xrange [3.5:4.5]とすれば 3.5 から 4.5 までの領域に設定できます。縦軸(y 軸)は
set yrange[-1:1]
で-1 から 1 の領域に設定できます。
set xrange[*:*]
set yrange[*:*]とすると設定は消去され、プロットするデータに自動で合わせられます。最大あるいは最小だけをセットすることも可能です。(set xrange[0:*]など)
対数目盛

縦軸か横軸を対数目盛にしたい場合は
set logscale y#縦軸を対数目盛にunset logscale y#もとに戻す

gnuplot コマンドのファイルからの読み込み

以上のようなコマンドは gnuplot を起動したあと一行ずつ入力することもできますが、これらをまとめたスクリプトファイルを emacs などで作成しておいて、これを実行することもできます。このファイルには決まった拡張子はありません。".plt"を使う人もいれば".gpl"を使う人もいます。".txt"でも構いません。自分でわかるようにしておいてください。
例えば plot.gpl ファイルにset xrange[0:1]
set yrange[-1:1]
plot "data.dat" u 1:2 t "a(x) "w l,\"data.dat" u 1:3 t "b(x)" w l3

pause -1と書いておき、これを読み込むにはgnuplot を起動する前に端末で$ gnuplot plot.gplとすれば自動的に読み込まれますし、あるいは gnuplot を起動した後であればgnuplot> load "plot.gpl"
としても読み込むことができます。ファイルからコマンドを読み込んだ場合はグラフの描画が一瞬で終了してしまうので、pause -1 を plot の後に記述してください。これはグラフを画面ではなくファイルに出力する場合には不要です。
グラフのファイルへの出力グラフを pdf ファイルなどに出力します。グラフをファイルにきれいに出力する場合はgnuplot のコマンドの数が増えますので、コマンドのリストをファイルに書くようにしてください。pdf ファイルに出力するには冒頭に以下の二行を追加します。
set terminal pdfcairo
set output "ファイル名.pdf"#以下は同じですset xrange[...
plot " " ...
pdf ファイルを開く

pdf ファイルはクリックして開くこともできますが、コマンドラインからは evince(ドキュメントビューア)コマンドで開くことができます。
$ evince ファイル名.pdf
きれいな図を書くために図のスタイル

縦軸と横軸に名前をつけるには
set xlabel "x"
set ylabel "y(x)"4とします。
データ点と線のスタイル

pointtype (pt): 点の種類
pointsize (ps): 点の大きさ
linetype (lt): 線の種類
linewidth (lw): 線の太さ
plot "data.dat" u 1:2 t "a(x)" w lp pt 1 ps 1 lt 3 lw 7などのように指定します。
線と点のスタイルは保存しておくこともできます。
plot よりも手前で
set linestyle 1 lt 1 lw 5 ps 1 pt 7としておくとlinestyle 1 (ls 1)としてこのスタイルが呼び出せます。
plot "data.dat" u 1:2 t "a(x)" w lp ls 1

凡例の位置

set key left top #左上に凡例を表示
left あるいは right, top あるいは bottom が使えます。グラフと被らない位置を探してください。
文字の大きさgnuplot で作成される図の文字は印刷されると小さいです。font オプションで font のサイズを変更します。グラフ全体のフォントサイズを変えるには
set terminal pdfcairo font "Arial,25"などとするとフォントタイプ Arial, フォントサイズが 25 に設定されます。
軸の名前、凡例のみなどを変えたい場合はset xlabel "x" font "Arial, 25"
set key right top font "Arial,30"などと個別に設定します。

5