つれづれなる備忘録

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

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次元ベクトルプロット"
3次元ベクトルプロット

3. まとめ

 gnuplotでベクトルプロットを行う場合は1回ファイルに出力してから読み込む手間があるので、使い勝手がよいわけではない。ツール上でベクトルプロットを行いたい場合は、他のソフトを検討した方がよいかもしれない。