簡體   English   中英

更改顫動軸刻度線-Python

[英]Change axes ticks of quiver - Python

我正在用Matplotlib顫抖方法繪制矢量場。

我存儲此向量的數組的尺寸為x * y,但我正在處理的空間范圍是-22

到目前為止,要繪制矢量場,我有以下方法:

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 = 0y = 0 ,x和y的范圍從-22 然后,我想按照該圖案繪制圖像的軸。

作為一種標准方法,我嘗試執行以下操作:

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方法配合使用,例如imshowstreamplot

但這是我用這段代碼得到的:

在此處輸入圖片說明

這不是我想要的。

因此,我想知道如何執行在此說明的更改軸刻度的操作。

先感謝您。

有趣的是,我昨天才剛剛了解quiver ... :)

根據quiver文檔 ,該函數可以接受2到5個參數...

使用該函數的最簡單方法是將具有相等數量的元素UV兩個數組傳遞給它。 然后,matplotlib將為陣列中的每個元素繪制一個箭頭。 具體來說,對於每個元素i,j您將得到一個箭頭, 放置在i,ji,j並且其分量由U[i,j]V[i,j] 這就是你發生的事

一種更完整的語法是使數組具有相等數量的元素XYUV 再次,您將為每個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_xvalues_y

quiver函數的matplotlib示例也可能有用。

希望對您有所幫助!

暫無
暫無

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

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