我想在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'
答案 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()