暇な理系大学生の備忘録

ちょっとしたことをつらつらと

gnuplotの使い方【第2軸の使用(右軸)、ラベル位置の調整、任意単位の軸設定】

お久しぶりです。今回は第2軸(右軸と左軸でスケールが異なるもの)の使用方法や、ラベル位置の微調整、また任意単位のグラフを書く際の軸設定について紹介します。任意単位とは大きさではなく量の比、概形などを主に見たいときに使用します。

 

例えば、data1(y=x)、data2(y=1.1^x)のグラフをデフォルトでまとめて表示すると次のようになりますよね。

 

f:id:hima_b:20180816141526p:plain

 

data2が指数的に増加する関数なのでdata1が小さすぎてほぼ0に見えてしまいます。このままでは困りますよね。

 

そこで1軸をdata1の大きさに、2軸(右軸)をdata2の大きさに対応させてみましょう。

 

 

set y2tics
plot 'data.csv' using 1:2 with line title 'data1','data.csv' using 1:3 with line title 'data2' axes x1y2
set xtics nomirror
set ytics nomirror
set y2tics 5000

 

 序盤のカンマ区切りの設定やその他フォントの大きさ、余白の大きさ設定は省略しているのでわからない場合は過去記事を参考にしてみてください。

 

plot部分の最後にaxes x1y2とある方がy2、つまり2軸に割り当てられます。

他は目盛りの設定でこれも過去にお話ししたかと思います。

 

プロットしてみるとこんな感じ

 

f:id:hima_b:20180816142516p:plain

 

これでdata1の値も見やすくなりましたね。もっとも今回は直線ですが。

 

 

 

また、xやyラベルの位置の調整についてですが、これは至って簡単で 

 

set xlabel 'x label' font "Arial,22" offset 0,-0.8
set ylabel 'y label' font "Arial,22" offset -2,0

 

こんな風に各ラベルの設定の部分の後ろにoffset (x方向にずらしたい量),(y方向にずらしたい量)

というような書き方でラベルの位置を調節することができます。上の図でも少し調節しています。

 

ちなみにこれは 目盛りの数字などにも有効で 


set xtics nomirror offset 0,-2

 

などのように書いて調節することができます。

 

 

次に任意単位(arb units)風な軸の設定です。これは単純に目盛りの数字を消せばよくて、目盛りを残して数字だけを消したいときは 


set format y ""

 

目盛りごと消したいときは 


unset ytics

 

などとしてラベル名をhogehoge(arb units)みたいにしておけばいいかと思います。

実際に下の写真が普通にプロットした時で、2枚目が左右の軸に分け、任意単位軸にしたグラフです。

 

f:id:hima_b:20180816144005p:plain

f:id:hima_b:20180816143948p:plain

 

使いどころは少ないかもしれませんが、実験系の研究をしている人とかは、Aのパラメータをどんな値のときにBのパラメータがピークを迎える、急激に変化する、などの概形を観察したいときなどに役に立つかもしれません。

 

もっとも、表示していないだけでソフト側はグラフの値を認識しているので、プロット範囲などの指定は支障なく行うことができます。

 

では。