35
我有一个图形,根据matplotlib中绘制的某些数据计算得出。我想在此图的全局最大值周围绘制一个矩形区域。我试过plt.axhspan,
,但是当我打电话给plt.show()
如何在matplotlib图形中的特定区域绘制矩形
时,矩形似乎没有出现那么,矩形区域如何绘制到matplotlib图上呢?谢谢!
我有一个图形,根据matplotlib中绘制的某些数据计算得出。我想在此图的全局最大值周围绘制一个矩形区域。我试过plt.axhspan,
,但是当我打电话给plt.show()
如何在matplotlib图形中的特定区域绘制矩形
时,矩形似乎没有出现那么,矩形区域如何绘制到matplotlib图上呢?谢谢!
最有可能的原因是您在调用axhspan时使用了x参数的数据单位。从the function's docs(我的强调):
ýCOORDS是在数据单元和X COORDS是在轴(相对0-1) 单元。
因此,任何拉伸到左边0或右边1的矩形都是简单地绘制出来的。
一个简单的替代方案可能是将Rectangle
添加到您的坐标轴(例如,通过plt.gca
和add_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"))