Pythonのデータビジュアライゼーションライブラリであるmatplotlibには、ベクトル場を描画するためのquiver
という関数があります。しかし、このquiver
関数のscale
パラメータの使い方は少し複雑で、初めて使う人にとっては混乱を招くことがあります。
まず、quiver
関数はベクトル場を描画するための関数で、各点でのベクトル(矢印)を描画します。scale
パラメータは、これらのベクトルの長さ(つまり、スケール)を制御します。
具体的には、以下のようなコードでベクトル場を描画することができます。
import matplotlib.pyplot as plt
import numpy as np
x, y = np.mgrid[0:20, 0:25]
u = np.sin(2 *x * np.pi / 20)
v = np.cos(2 * y * np.pi / 25)
fig, (ax_l, ax_r) = plt.subplots(1, 2, figsize=(8, 4))
ax_r.quiver(x, y, u, v, scale=5, scale_units='inches')
ax_l.quiver(x, y, 2*u, 2*v, scale=5, scale_units='inches')
ax_l.set_title('2x')
ax_r.set_title('1x')
plt.show()
このコードでは、scale=5
と設定しています。これにより、ベクトルの長さが5倍になります。また、scale_units='inches'
とすることで、スケールの単位をインチに設定しています。
しかし、このscale
パラメータの使い方は一見すると直感的ではありません。なぜなら、scale
パラメータを大きくすると、ベクトルの長さが逆に小さくなるからです。これは、scale
パラメータが「データ単位あたりの矢印の長さ」を表しているためです。
したがって、scale
を大きくすると、同じデータ単位で表現される矢印の長さが小さくなり、逆にscale
を小さくすると矢印の長さが大きくなります。
以上が、Pythonのmatplotlibでquiver
関数のscale
パラメータを使う際の基本的な考え方です。この知識を持っておけば、ベクトル場の描画におけるスケールの調整が容易になります。.