2012-10-22 100 views
35

我有一個圖形,根據matplotlib中繪製的某些數據計算得出。我想在此圖的全局最大值周圍繪製一個矩形區域。我試過plt.axhspan,,但是當我打電話給plt.show()如何在matplotlib圖形中的特定區域繪製矩形

時,矩形似乎沒有出現那麼,矩形區域如何繪製到matplotlib圖上呢?謝謝!

回答

45

最有可能的原因是您在調用axhspan時使用了x參數的數據單位。從the function's docs(我的強調):

ýCOORDS是在數據單元和X COORDS是在軸(相對0-1) 單元

因此,任何拉伸到左邊0或右邊1的矩形都是簡單地繪製出來的。

一個簡單的替代方案可能是將Rectangle添加到您的座標軸(例如,通過plt.gcaadd_patch); Rectangle對這兩個維度都使用數據單位。以下內容將添加一個灰色矩形,其寬度爲&,高度爲1,以(2,3)爲中心:

from matplotlib.patches import Rectangle 
someX, someY = 2, 3 
currentAxis = plt.gca() 
currentAxis.add_patch(Rectangle((someX - .5, someY - .5), 1, 1, facecolor="grey"))