kazu_1995’s diary

北の高専→大学生→院生→社会人のブログ

よく使うgnuplotのコマンド備忘録

論文や報告資料の作成をする際に、データを取りまとめる必要があります。 そのためにグラフ作成ソフトを使用する場面が多く存在し,私もgnuplotを長いこと使用しています。

このgnuplotを使う上で,よく使用するコマンドをまとめてみました。

なお,コマンドは基本的に省略形で記述し,省略前の形を#のあとに記述しています。

全般設定

フォントの設定

se t wxt font "xxx, y"
# set terminal wxt font "xxx, y"

xxx : フォント名
y : ポイント数
se t wxt font "Times New Roman, 18"あたりをよく使う。

CSVを読み込めるように

se dataf sep ","
# set datafile separator ","

データはCSV 形式に変換したほうが処理しやすい。これ以降,CSV ファイルの取り扱いを基本とする。

描画する

p "aaa.csv" u x:y
# plot "aaa.csv" using x:y

aaa.csv : ファイル名,パスで指定することもできる
x : x軸となるデータ列が左端から何行目に存在するか
y : y軸となるデータ列が左端から何行目に存在するか

もし,ファイルの先頭数行を無視する場合,

rep "aaa.csv" u x:y ev ::z
# replot "aaa.csv" using x:y every ::z

z : 無視する行数
とする。

複数データを重ねて描画する

# 方法1. カンマで続けて記述
p "aaa.csv" u x:y, "bbb.csv" u a:b
# 方法2. replotで分けて記載
p "aaa.csv" u x:y
rep "bbb.csv" u a:b

同一ファイルであっても,u(using)は記載する必要がある。

同一ファイル内のデータを複数参照する場合,一度ファイル名(パス)を変数として定義すると楽。

# 方法3. ファイル名を変数定義してからプロット
N = "aaa.csv"
p N u x:y, N u a:b
# または,
p N u x:y
rep N u a:b

描画設定

下のコマンドは,u x:y (ev ::z) のあとに記載する。

データ点の表示スタイル

点の種類や,線の太さは変更可能(記載省略)

w p
# with points, 点で表示する(標準)
w l
# with lines, データ間を線で結ぶ
w lp
# with linepoints, 点で表示し,さらに線でも結ぶ

線色の変更

lc rgb "xxx"
# linecolor rgb "xxx"

xxx:color name
よく使用するcolor nameを下に。
black gray50 red dark-blue dark-green dark-orange
他のcolor nameは,sh colorn(show colorname)で確認することができる。

凡例に表示する名前を指定

t "xxx"
# title "xxx"

その他設定

これら設定は,設定後replotコマンドを入力することで描画される。

y軸に対して適用するには,xをyに置換する。 また,設定を取り消すためには,se(set)をuns(unset)に置換する。

軸範囲を指定する

se xr [a:b]
# set xrange [a:b]

a : 下限
b : 上限

オートスケール

se au
# set autoscale

軸ラベルを表示する/非表示にする

se xl "xxx"
# set xlabel "xxx"

凡例を表示する/非表示にする

se k xxx
# set key xxx

xxx : 凡例位置,left,right,top,bottom,outside,below から指定(left bottom のように複数指定も 可能)
また,直接座標位置による指定もできる(記載省略)

logスケールにする/linearスケールにする

se log x
# set logscale x
uns log x
# unset logscale x

罫線を挿入する

se xzeroa lt x
# set xzeroaxis linetype x

x : 線の種類,0を指定すると破線
y=0 の位置に破線の罫線を挿入する