gnuplotによるグラフ作成33~ベクトルプロット
今回はgnuplotを用いてベクトルをプロットする方法について紹介する
1. ベクトルプロットのデータ形式
gnuplotでベクトルをプロットする場合、2次元の場合は位置x,yと位置でのベクトルvx,vyの4つのデータを用意する。基本的には4つのデータを別の計算ソフト(gnuplotでもよいが)でデータファイルとして出力して起き、gnuplotを用いてデータファイルを読み込んで表示するという流れになる。
今回は以下の適当に以下のデータファイルpos_v.txt
を用意した。
-5.000 25.000 1.000 -10.000 -3.889 15.124 1.000 -7.778 -2.778 7.716 1.000 -5.556 -1.667 2.778 1.000 -3.333 -0.556 0.309 1.000 -1.111 0.556 0.309 1.000 1.111 1.667 2.778 1.000 3.333 2.778 7.716 1.000 5.556 3.889 15.124 1.000 7.778 5.000 25.000 1.000 10.000
2. ベクトルプロットの表示
事前に用意した4列のデータ(x,y,vx,vy)を読み込んでベクトルを表示するには以下のようにplotにvectorsオプションを追記するだけで、後は通常のプロットと同じとなる。
plot "pos_v.txt" w vectors
以下が実行結果になる。
位置やベクトルの矢印の書式を個別に指定するには以下のようにする。
plot "pos_v.txt" w vectors lc 'red', '' with points lt 6 lc 'black'
3. 3次元のベクトルプロット
3次元の場合は、位置x,y,zと位置でのベクトルvx,vy,vzの6つのデータを用意し、plotの代わりにsplotを用いれば後は2次元の場合と同じになる。
乱数を使ってデータを生成し、"pos_v3d.txt"として出力した。
0.768 0.176 0.306 0.632 0.989 0.190 0.710 0.796 0.274 0.035 -0.296 0.180 0.832 0.257 0.988 -0.867 -0.589 0.004 0.591 0.544 0.296 -0.894 -0.809 0.798 0.367 0.331 0.686 0.233 0.321 -0.261 0.171 0.493 0.120 -0.785 -0.125 0.727 0.523 0.409 0.938 -0.712 -0.496 0.787 0.788 0.567 0.602 -0.532 0.044 -0.564 0.030 0.421 0.449 -0.913 0.724 0.824 0.371 0.127 0.148 0.720 -0.436 0.203
コマンドはplotの代わりにsplotとして、あとは2次元のベクトルプロットと同じにした。
splot "pos_v3d.txt" w vectors lc 'red', '' with points lt 6 lc 'black'
実行結果は以下のように3次元のベクトルプロットが得られる。
3. まとめ
gnuplotでベクトルプロットを行う場合は1回ファイルに出力してから読み込む手間があるので、使い勝手がよいわけではない。ツール上でベクトルプロットを行いたい場合は、他のソフトを検討した方がよいかもしれない。