2017年2月7日火曜日

gnuplotで2系列データをmultiplotで上下に並べてx軸を揃えて比較する

タイトルの通りの内容です.制御入力と制御量を同時にグラフ出力するときにaxes xy2を使う方法がありますが,表示数が増えると見づらくなるので分けてしましたい.そこでmultiplotを使います.multiplotを使うと簡単に上下にグラフを並べられるのですが問題が2点.1)ラベルや軸目盛のせいでx軸の幅がずれる.2)時系列で上下に並べているので上のグラフのx軸のラベルと目盛が邪魔.ということで以下の通り処理してしまします.

set terminal wxt 0
reset
set lmargin 9 #x軸幅を揃えるためにグラフまでのマージンを決めてしまう(左側)
set rmargin 2 #右側のマージン
set ylabel "P[m], V[m/s], A[m/s2]"
unset xlabel  #xラベルを削除
set format x ""  #x目盛を削除
set grid
set multiplot layout 2,1  #multiplotの設定 layout 縦,横
p [:][-1:1] file.".txt" u 1:5 w l title "Xa", "" u 1:4 w l title "Xv", "" u 1:3 w l title "Xp","" u 1:2 w l title "Xdes"
set xlabel "Time [sec]"  #x軸のラベルを再設定(下のグラフ用)
set format x  #x軸の目盛を再設定(下のグラフ用)
set ylabel "Input"
p file.".txt" u 1:6 w l title "Input"
unset multiplot

ちなみに「file.".txt"」となっていますが,「file = 'name'」を設定しておけば「name.txt」がプロットされます.「.」は文字列の接続です.

0 件のコメント:

コメントを投稿