つれづれなる備忘録

日々の発見をあるがままに綴る

gnuplotによるグラフ作成5~軸目盛の書式設定

 前回のgnuplotのプロット線のスタイル設定について紹介したが、今回は軸目盛の書式設定の方法について紹介する。

atatat.hatenablog.com

1. 対数目盛の設定

 対数目盛を表示するにはset logscale 軸名 基数とする。例えばy軸を基数10の対数目盛を表示させるには

set logscale y 10
plot exp(x)

対数目盛の表示
対数目盛の表示

対数目盛を解除するにはunset logscale 軸名(例えばunset logscale y)とすれば解除できる。また軸の設定が対数目盛かどうか確認するにはshow logscaleでターミナル上にlogscaleかどうか、軸名、基数を表示させることができる。y軸のみ対数目盛表示にしている場合は以下のように表示される。

gnuplot> show logscale
        logscaling y (base 10) only

またx,y軸ともに対数目盛に設定している場合は

gnuplot> show logscale
        logscaling x (base 10) and y (base 10)

2. 目盛線の設定

 目盛線には大目盛と小(副)目盛があり、通常のプロットでは大目盛のみだが対数目盛のときは両方表示される。目盛の長さを設定するにはset ticscale 大目盛, 小目盛として小目盛を省略すると大目盛の半分の長さになる。 大目盛の長さを3、小目盛の長さを1とする場合は

set ticscale 3, 1

実行結果は下のようになる。

目盛長さの設定
目盛長さの設定

デフォルトではxy目盛は上下、左右対称に表示されるが、片側だけに表示したい場合はx軸の場合はset xtics nomirrorとする。(y軸はytics)もとに戻す場合はset xtics mirrorとすればよい。実行例は下の通り。

x軸片側目盛表示
x軸片側目盛表示

目盛の方向を外向きにするにはset tics outとする。もとの内向きにもどすにはset tics in

目盛外向き
目盛外向き

3. 目盛間隔の変更

 目盛間隔を変更するにはx軸の場合はset xtics 目盛開始位置, 目盛間隔, 目盛終了位置とする。y軸の場合はxticsyticsにすればよい。小目盛はx軸の場合は、set mxtics 目盛数とし、y軸の場合はmxticsmyticsとすればよい。 大目盛を-10から10まで5の間隔、小目盛を1づつ入れるには

set xtics -10,5,10
set mxtics 5
replot

実行例を下に示す。

目盛間隔変更
目盛間隔変更

目盛を等間隔でなく、不等間隔で指定したい場合はset xtics (x1,x2,x3,x4)として()内に指定する。例えば

set xtics (-10,-5,-2,0,2,5,10)
replot

実行結果は-10,-5,-2,0,2,5,10に目盛が設定される。

不等目盛間隔
不等目盛間隔

4. まとめ

 今回は軸目盛の書式設定として、対数目盛、目盛の表示、目盛間隔の調整について紹介した。