gnuplot メモ

2017年6月11日

はじめに

gnuplot のメモ。

Mac 版のセットアップ

macOS Sierra (10.12.5) で作業。

以下のサイトで Mac 版が配布されている。

アプリケーションフォルダに入れる。初回はポップアップメニューから起動する必要があった。起動には XQuartz が必要。

ターミナルから起動するには、以下のようにパスを設定しておく。

export PATH=/Applications/gnuplot.app:/Applications/gnuplot.app/bin:$PATH

スクリプトでグラフを表示

$ gnuplot -p plot.gp

CSV を処理する

set datafile separator ","

行頭の n 行を飛ばす

plot 'data.txt' every ::n using 1:2 w l

データを編集してプロット

たとえば、2、3、4 列目のデータでノルム計算してプロットする場合、つぎのようにする。

plot 'data.txt' using 1:(sqrt($2**2+$3**2+$4**2)) w l

線の太さを変える

plot 'data.txt' w l lw 3

表示範囲の設定

set xrange [0:1]
set yrange [0:10]

自動設定に戻す

set autoscale

軸ラベルの設定

set xlabel 'x [m]'
set ylabel 'Temperature [K]'

軸の書式の設定

set format y "%.0e"

グリッドの表示

set grid

対数表示

set logscale y

プロットのタイトルの設定

plot 'data.txt' using 1:2 w l title 'case1'

非表示

plot 'plot-slab-temp.txt' every ::4 using 1:2 notitle

凡例の位置の設定

set key left
  • left 左側
  • right 右側
  • top 上側
  • bottom 下側
  • outside 図の右側の外
  • below 図の下側

凡例の表示・非表示

非表示

set nokey

あるいは

unset key

再表示

set key

グラフを重ねて表示

plot 'data.txt'
replot 'data2.txt'

グラフの画像による保存

set terminal png
set output 'plot.png'
replot

グラフウインドウにフォーカスさせない

set terminal x11 noraise

ふつう使わないが、プログラムから gnuplot を呼び出すときに必要になるかも。

棒グラフ

例として、つぎのようなデータを考える。

data.txt

apple 3
banana 1
citronS 2

以下のようにする。

set xtics rotate by -90  # ラベルを -90 度回転させる
set boxwidth 0.5 relative  # 棒の幅を細くする
set style fill solid  # 棒を塗りつぶす
set yrange [0:]
plot 'data.txt' using 0:2:xtic(1) with boxes notitle

近似式を作る

たとえば、データを線形近似したい場合はつぎのようにする。

f(x) = a*x + b  # 近似式
a = 0  # 適当な初期値 (式やデータによっては吟味が必要)
b = 0
fit f(x) 'data.txt' via a, b
plot f(x), 'data.txt'  # 確認
print a, b  # パラメータの確認