我有一個矢量場,我想正確地繪圖。當我按原樣使用quiver時,它似乎可以輸出正確的繪圖:
然而,如果我按照這里給出的指導方針,讓顫動比例和顯示正確的矢量角度,
有人知道為什么嗎?
以下是代碼:
import numpy as np
import matplotlib.pyplot as plt
xx = np.array([0. , 0.2, 0. 4, 0.6, 0.8, 1. ],
[0. , 0.2, 0。 4, 0.6, 0.8, 1. ],
[0. , 0.2, 0。 4, 0.6, 0.8, 1. ],
[0. , 0.2, 0。 4, 0.6, 0.8, 1. ],
[0. , 0.2, 0。 4, 0.6, 0.8, 1. ],
[0. , 0.2, 0。 4, 0.6, 0.8, 1. ]] )
yy = np.array([[-200. , -200. , -200. , -200. , -200. , -200. ] 。
[-144.6, -144.6, -144. 6, -144.6, -144.6, -144.6】。]
[-89.2, -89.2, -89。 2, -89.2, -89.2, -89.2】。]
[-33.8, -33.8, -33。 8, -33.8, -33.8, -33.8】。]
[ 21.6, 21.6, 21. 6, 21.6, 21.6, 21.6] 。
[77. , 77. , 77。 , 77. , 77. , 77. ])
dx = np.array([[ 6.18291908e-09, 3.70076924e-06, 3.42538903e-06,
-4.38426006e-07, -2.55227640e-06, 6.18291908e-09】。]
[2.17018678e-06, 2.51500956e-04, 1.73477082e-04,
-1.23855846e-04, -2.29881121e-04, 2.17018678e-06】。]
[2.44470726e-05, 3.79715107e-03, 2.49497711e-03,
-2.05506466e-03, -3.60106480e-03, 2.44470726e-05】。]
[2.87699956e-04, 3.56327893e-02, 2.23694354e-02,
-2.17573718e-02, -3.50990203e-02, 2.87699956e-04】。]
[2.13917741e-03, 1.07630739e-01, 1.09098114e-01,
-1.73049517e-01, -1.15168685e-01, 2.13917741e-03】。]
[3.13827774e-04, -3.87236380e-02, -4.33945841e-02。
7.12401001e-02, 3.91662321e-02, 3.13827774e-04]] )
dy = np.array([[0.24105279, 0.24104844, 0. 24104251, 0.24104319, 0.24104954,
0.24105279],
[0.2409212 , 0.24103392, 0.24123878, 0.24125286, 0.24105669,
0.2409212 ] 。
[0.23870441, 0.24127457, 0. 24563927, 0.24579267, 0.24151955,
0.23870441],
[0.21110992, 0.24513396, 0. 30153966, 0.30228133, 0.24619877,
0.21110992],
[0.07941149, 0.14922776, 0. 70945221, 0.67353021, 0.12818932,
0.07941149],
[0.07717276, 0.04937775, 0。 18100361, 0.16734886, 0.03621946,
0.07717276]])
# PLOT 1 (Correct one)/span>
plt.figure(1, dpi = 300)
plt.quiver(xx, yy, dx, dy)
plt.title("Plot 1")
plt.show()
# PLOT 2 (Something is wrong her)
# Inspiration from: https://stackoverflow.com/questions/36534381/understanding-matplotlibs-quiver-plotting
plt.figure(2, dpi = 300)
plt.quiver(xx, yy, dx, dy, angles="xy"/span>, scale_units='xy'/span>, scale=1)
plt.title("Plot 2")
plt.show()
EDIT:
請看一下dx、dy的資料。dx資料比dy資料小,因此,向量應該總是指向上方而不是視線方向。
uj5u.com熱心網友回復:
繪制矢量場的另一個選擇是使用streamplot,它可能會產生一個符合你需求的結果。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/312406.html
標籤:

