在IPython笔记本上绘制几个子图
问题描述:
我有两组8个图像,每个图像都是numpy数组。在IPython笔记本上绘制几个子图
因为我想在我的程序中的某个位置使用for循环,所以我想在同一个单元格中显示每个集合作为matplotlib子图表,不幸的是它不起作用(我尝试使用IPython.display中的显示函数,根本没有成功)。
这里是我使用的代码:
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
for i, img in enumerate(set1):
plt.subplot(2, 4, i+1)
plt.axis('off')
plt.imshow(img)
for i, img in enumerate(set2):
plt.subplot(2, 4, i+1)
plt.axis('off')
plt.imshow(img)
它仅显示所述第二组。
答
发生什么事是你正在绘制在同一个图上的一切。因此,当绘制来自set2
的图像时,您将覆盖来自set1
的图像。你可以在你的for循环之前调用plt.figure()
来创建一个新图形:
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline
plt.figure()
for i, img in enumerate(set1):
plt.subplot(2, 4, i+1)
plt.axis('off')
plt.imshow(img)
plt.figure()
for i, img in enumerate(set2):
plt.subplot(2, 4, i+1)
plt.axis('off')
plt.imshow(img)
我明白了!非常感谢您的回答。 – JWM