matplotlibのquiverメソッドを利用して、矢印やベクトルを描写する方法をご紹介します。
3次元の立体にベクトルを描写することもできますが、今回は2次元平面にベクトルや矢印を描写する方法を取り扱います。
quiverで1本の矢印を引く
まず最初に、quiverを使った簡単な例として、1本の矢印を引いてみましょう。矢印の始点をx, yとし、方向ベクトルをu, vとすると、下記のソースコードでベクトル・矢印を引くことができます。
import matplotlib.pyplot as plt
import numpy as np
ライブラリをインポートします。
始点をx, y = [1, 1], 法雨ベクトル (u, v) = (1, 2) として、矢印を引いてみます。quiver()メソッドに下記のように、x, y, u, vを与えてあげることで、下記のような矢印を引くことができます。
fig, ax = plt.subplots()
ax.set_xlim(0, 5)
ax.set_ylim(0, 5)
ax.set_title("Axes.quiver()")
x, y = 1, 1
u, v = 1, 2
ax.quiver(x, y, u, v, color='red', angles='xy', scale_units='xy', scale=1)

同時に複数の矢印を引く
同時に複数の矢印を引きたい場合は、x, y, u, vの与え方を変える必要性があります。
1本の矢印を引く場合は、それぞれにスカラー値を与えることで矢印を引くことができましたが、複数の矢印を引きたい場合は、x, y, u, vをそれぞれ配列で与えてあげる必要があります。
この配列は同じサイズではないと、エラーが出てしまうので注意してください。下記にサンプルを掲載します。
fig, ax = plt.subplots()
ax.set_xlim(0, 7)
ax.set_ylim(1, 7)
ax.set_title("Axes.quiver() multiple vectors")
x, y = [1, 2], [2, 3]
u, v = [1, 2] , [4, 2]
ax.quiver(x, y, u, v, color=["red", "green"], angles='xy', scale_units='xy', scale=1)

このように複数のベクトルを書くことができました。
2本以上の矢印を引く場合も同じように、ベクトルの個数を変えることで与えることができます。