データファイルを使って gnuplot でベクトルを描く例。備忘録として。
$\theta = 45$° の斜方投射を規格化した時間と座標で書くとこんな感じ。
In [1]:
x(t) = 2 * t
y(t) = 2 * t - t**2
vx(t) = 2
vy(t) = 2 - 2*t
ベクトルの作図用にデータファイルを作成する。
In [2]:
s = 0.2
set print "v.txt"
print "# x y vx vy"
do for [i=0:4]{
t = 0.5 * i
print sprintf("%5.2f %5.2f %5.2f %5.2f", \
x(t), y(t), s*vx(t), s*vy(t))
}
set print
データファイルの中身の確認。
In [3]:
! cat v.txt
In [4]:
set parametric
set grid
set zeroaxis
set key samplen 1
set xrange [-0.5:4.5]
set yrange [-0.5:2]
set size ratio 0.5
set title "斜方投射の速度ベクトルと軌道"
plot [t=0:2] x(t), y(t) lw 2 notitle, \
"v.txt" u 1:2:3:(0) w vec filled head lc "blue" lw 1.5 t "速度の x 成分",\
"" u 1:2:(0):4 w vec filled head lc "red" lw 1.5 t "速度の y 成分",\
"" u 1:2:3:4 w vec filled head lw 2 lc "black" t "速度ベクトル",\
"" u 1:2 w p pt 6 pointsize 0.7 lc "dark-green" notitle