[英]Change axes ticks of quiver - Python
我正在用Matplotlib的顫抖方法繪制矢量場。
我存儲此向量的數組的尺寸為x * y,但我正在處理的空間范圍是-2到2 。
到目前為止,要繪制矢量場,我有以下方法:
import matplotlib.pyplot as plt
def plot_quiver(vector_field_x, vector_field_y, file_path):
plt.figure()
plt.subplots()
plt.quiver(vector_field_x, vector_field_y)
plt.savefig(file_path + '.png')
plt.close()
以10 x 10的數組為例,給出以下輸出:
但是要生成此向量場,我將數據集中在x = 0 , y = 0 ,x和y的范圍從-2到2 。 然后,我想按照該圖案繪制圖像的軸。
作為一種標准方法,我嘗試執行以下操作:
def plot_quiver(vector_field_x, vector_field_y, file_path):
plt.figure()
fig, ax = plt.subplots()
ax.quiver(vector_field_x, vector_field_y)
ax.set_xticks([-2, 0, 2])
ax.set_yticks([-2, 0, 2])
plt.savefig(file_path + '.png')
plt.close()
通常與Matplotlib方法配合使用,例如imshow和streamplot 。
但這是我用這段代碼得到的:
這不是我想要的。
因此,我想知道如何執行在此說明的更改軸刻度的操作。
先感謝您。
有趣的是,我昨天才剛剛了解quiver
... :)
根據quiver文檔 ,該函數可以接受2到5個參數...
使用該函數的最簡單方法是將具有相等數量的元素U
和V
兩個數組傳遞給它。 然后,matplotlib將為陣列中的每個元素繪制一個箭頭。 具體來說,對於每個元素i,j
您將得到一個箭頭, 放置在i,j
處i,j
並且其分量由U[i,j]
和V[i,j]
。 這就是你發生的事
一種更完整的語法是使數組具有相等數量的元素X
, Y
, U
和V
再次,您將為每個i,j
元素得到一個箭頭i,j
其分量由U[i,j]
和V[i,j]
,但是這次將它們放置在坐標X[i,j]
, Y[i,j]
。
你需要調用quiver
像
quiver(values_x, values_y, vector_field_x, vector_field_y)
可能您已經做到了,但是您可以使用numpy.meshgrid
函數獲取values_x
和values_y
。
quiver
函數的matplotlib示例也可能有用。
希望對您有所幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.