使用 Matplotlib 绘图时图形重叠
Figures overlapping when plotting using Matplotlib
我有一个包含多个图像的绘图。有 20 行和 3 列。在每一行中,第一列应该是原始图像,第二列应该是掩码,第三列应该是使用神经网络获得的分割。
我尝试使用以下代码。可以正确绘制 2 行。从第 3 行开始图像与第 1 行重叠。
f = plt.figure()
for j in range(3):
pred_y = y_pred[j]
pred_y = pred_y.reshape(256, 256)
pred_y = (pred_y > 0.1).astype(np.uint8)
f.add_subplot(j + 1, 3, 1 )
plt.imshow(X_test[j, :, :])
f.add_subplot(j + 1, 3, 2)
plt.imshow(y_test[j])
f.add_subplot(j + 1, 3, 3)
plt.imshow(pred_y)
plt.show()
得到的输出是,
Figure.add_subplot
的参数是 num_rows
、num_cols
、n
,而不是 row
、num_rows
、col
.因此,您将以 1x3、2x3、3x3 的排列方式制作顶行图。像这样拨打 add_subplot
:
f.add_subplot(20, 3, 3 * j + 1)
f.add_subplot(20, 3, 3 * j + 2)
f.add_subplot(20, 3, 3 * j + 1)
生成轴的更好方法可能是 plt.subplots
, as suggested in the demo:
fig, ax = plt.subplots(20, 3, constrained_layout=True)
for i in range(20):
ax[i, 0].imshow(X_test[i])
ax[i, 1].imshow(y_test[j])
ax[i, 2].imshow((pred_y[j].reshape(256, 256) > 0.1).astype(np.uint8))
我有一个包含多个图像的绘图。有 20 行和 3 列。在每一行中,第一列应该是原始图像,第二列应该是掩码,第三列应该是使用神经网络获得的分割。
我尝试使用以下代码。可以正确绘制 2 行。从第 3 行开始图像与第 1 行重叠。
f = plt.figure()
for j in range(3):
pred_y = y_pred[j]
pred_y = pred_y.reshape(256, 256)
pred_y = (pred_y > 0.1).astype(np.uint8)
f.add_subplot(j + 1, 3, 1 )
plt.imshow(X_test[j, :, :])
f.add_subplot(j + 1, 3, 2)
plt.imshow(y_test[j])
f.add_subplot(j + 1, 3, 3)
plt.imshow(pred_y)
plt.show()
得到的输出是,
Figure.add_subplot
的参数是 num_rows
、num_cols
、n
,而不是 row
、num_rows
、col
.因此,您将以 1x3、2x3、3x3 的排列方式制作顶行图。像这样拨打 add_subplot
:
f.add_subplot(20, 3, 3 * j + 1)
f.add_subplot(20, 3, 3 * j + 2)
f.add_subplot(20, 3, 3 * j + 1)
生成轴的更好方法可能是 plt.subplots
, as suggested in the demo:
fig, ax = plt.subplots(20, 3, constrained_layout=True)
for i in range(20):
ax[i, 0].imshow(X_test[i])
ax[i, 1].imshow(y_test[j])
ax[i, 2].imshow((pred_y[j].reshape(256, 256) > 0.1).astype(np.uint8))