簡體   English   中英

matplotlib quiver 奇怪的情節

[英]matplotlib quiver weird plot

我正在嘗試制作簡單的箭袋圖,在 xy 平面上有 4 個點大致形成正方形,4 個移動點形成較小的內部正方形。 但是我的箭頭很奇怪。 我究竟做錯了什么?

p_x = np.array([1,10,10,1]).reshape(-1,1)
p_y = np.array([1,1,10,10]).reshape(-1,1)
corr_x = np.array([2,9,9,2]).reshape(-1,1)
corr_y = np.array([2,2,9,9]).reshape(-1,1)

在此處輸入圖像描述

這就是我使用以下代碼從 quiver 中得到的:

fig, ax = plt.subplots(figsize=(8,6))
ax.quiver(p_x, p_y, corr_x, corr_y)
plt.show()

在此處輸入圖像描述

我想我找到了答案。
根據文檔,箭袋中的第二個坐標 - U 和 V 是方向,但是,相對於第一個坐標,X 和 Y。U 和 V 不是端點。 如果你想讓向量在某個特定的坐標處結束,那么你需要給箭袋,這樣的端點:U = U - X 和 V = V - Y。
在下面的示例中,我的第一個向量從 (0,0) 開始並在 (2,2) 結束,第二個向量從 (2,2) 開始並在 (3,0) 結束。 但是,如果我嘗試這樣繪制它,請使用以下代碼:

X = np.array([0, 2])
Y = np.array([0, 2])
U = np.array([2, 3])
V = np.array([2, 0])
fig, ax = plt.subplots(figsize=(6,6))
plt.quiver(X, Y, U, V, angles='xy', scale_units='xy', scale=1)
plt.axis('equal')
plt.grid()
plt.xlim(-2,8)
plt.ylim(-1,5)
plt.show()

我得到了以下情節。

在此處輸入圖像描述

因此,要在我想要的坐標處結束矢量,我需要進行調整,如下所示:U = U - XV = V - Y。

下面的情節是我需要的情節。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM