【matplotlib】plt.quiverで矢印・ベクトルを描写する

Posted: , Category: Python

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本以上の矢印を引く場合も同じように、ベクトルの個数を変えることで与えることができます。

【広告】
統計学的にあなたの悩みを解決します。
仕事やプライベートでお悩みの方は、ベテラン占い師 蓮若菜にご相談ください。

機械学習と情報技術