使用 Python Matplotlib 繪製向量

Manav Narula 2023年1月30日
  1. 使用 matplotlib.axes.Axes.arrow() 函式使用 Python matplotlib 繪製向量
  2. 在 Python 中使用 matplotlib.pyplot.quiver() 函式使用 matplotlib 繪製向量
使用 Python Matplotlib 繪製向量

向量是向量空間中具有大小和方向的物件。我們可以在 Python 中使用陣列來表示向量。

我們需要在圖表上指定它的方向,以便像箭頭一樣繪製向量。我們可以使用 matplotlib 庫,該庫高度用於在 Python 中建立不同的圖形和繪圖向量。

讓我們瞭解如何使用 Python 的 matplotlib 庫繪製向量。

使用 matplotlib.axes.Axes.arrow() 函式使用 Python matplotlib 繪製向量

我們將使用 ax.axes() 函式向當前圖形新增一個軸以繪製一個簡單的單個向量。

要在這些軸上繪製向量,我們將使用 Axes.arrow() 函式。它從給定的 x 和 y 座標建立一個箭頭,指向指定的開始到結束值。

我們將在下圖中實現這一點。

import matplotlib.pyplot as plt

ax = plt.axes()
ax.arrow(1, 2, 5, 5, head_width=0.5, head_length=0.5)
plt.ylim(0, 10)
plt.xlim(0, 10)
plt.show()

輸出:

使用箭頭函式繪製向量

在上面的例子中,我們繪製了從座標 (1,2)(5,5) 的所需向量。

head_widthhead_length 引數分別用於指定箭頭的寬度和長度。我們還可以使用 shapeoverhang 等其他引數自定義最終繪圖。

在 Python 中使用 matplotlib.pyplot.quiver() 函式使用 matplotlib 繪製向量

pyplot.quiver() 函式可以在 2D 圖形中建立一個箭頭區域的圖。我們可以使用它一次繪製多個向量。

我們需要從初始化向量的座標和圖形的原點開始。為此,我們將使用 numpy 陣列。

然後,我們將使用 pyplot.quiver() 函式使用這些座標建立繪圖。

請參見下面的示例。

import numpy as np
import matplotlib.pyplot as plt

coordinates = np.array([[2, 5], [1, 4]])
o = np.array([[0, 0], [0, 0]])
plt.quiver(*o, coordinates[:, 0], coordinates[:, 1], color=["blue", "green"], scale=15)
plt.ylim(-10, 10)
plt.xlim(-10, 10)
plt.show()

輸出:

使用 quiver 函式繪製向量

我們使用上面的 pyplot.quiver() 函式繪製了兩個向量。

原點已使用 o 陣列指定。我們使用 scale 引數將箭頭的尺寸縮放到適當的大小。

我們可以自定義最終繪圖並使用不同的引數(如 headlengthheadwidthheadaxislength 等)更改箭頭的形狀和大小。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn