在matplotlib中打开的numpy数组中添加补丁

时间:2016-11-14 01:31:47

标签: python numpy matplotlib

我想在matplotlib中从数组中打开的图像上绘制框。我发现绘制框的一种方法是使用add_patch,但我找不到在从数组加载的图像上使用它的方法。

此代码

arr = np.random.rand(400,400)
fig = plt.imshow(arr)
fig.add_patch(patches.Rectangle((100, 100), 100, 100, fill=False))

产生错误:AttributeError:'AxesImage'对象没有属性'add_patch'

1 个答案:

答案 0 :(得分:2)

您必须将补丁添加到matplotlib轴:

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np

arr = np.random.rand(400,400)
fig,ax = plt.subplots(1)

ax.imshow(arr)
rect = patches.Rectangle((100, 100), 100, 100, fill=False)
ax.add_patch(rect)
plt.show()