这不是一个紧迫的问题,但它困扰着我:我想并排显示几个图像(即几列),但出于某种原因,下面的代码(取自python tutorial)只显示一列中的图像。所以我想要的是这样的布局
X X X
但我得到的是
X
X
X
代码:
...
plt.ion()
...
fig = plt.figure()
sample = face_dataset[65] # <== this is a simple image of size 640x480
for i, tsfrm in enumerate([scale, crop, composed]):
transformed_sample = tsfrm(sample)
ax = plt.subplot(1, 3, i + 1)
plt.tight_layout()
ax.set_title(type(tsfrm).__name__)
show_landmarks(**transformed_sample)
plt.show()
...
以下是show_landmarks函数定义:
def show_landmarks(image, landmarks):
"""Show image with landmarks"""
plt.imshow(image)
plt.scatter(landmarks[:, 0], landmarks[:, 1], s=10, marker='.', c='r')
plt.pause(0.001) # pause a bit so that plots are updated
我不认为不同的变换(缩放、裁剪、合成)有什么关系,所以我省略了它们,但它们可以在上面的链接下找到
如果我编写的代码与测试代码基本相同,则列显示得很好:
fig = plt.figure()
for i in (0,1,2):
ax = plt.subplot(1, 3, i + 1)
plt.tight_layout()
ax.set_title(i)
plt.show()
所以我的猜测是,地标会把事情搞砸。有人能告诉我为什么会这样吗
您需要修改
show_landmarks
,以便它调用当前打印轴,而不是plt
。然后将轴传递给函数以及其他参数相关问题 更多 >
编程相关推荐