在 IPython notebook 中绘制几个子图
plot several subplots in IPython notebook
我有两组 8 张图像,每组都作为 numpy 数组给出。
因为我想在我的程序中的某个时刻使用for循环,我想在同一个单元格中将每个集合显示为matplotlib子图,不幸的是它不起作用(我尝试使用[=中的显示功能20=],完全没有成功)。
这是我使用的代码:
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)
我有两组 8 张图像,每组都作为 numpy 数组给出。
因为我想在我的程序中的某个时刻使用for循环,我想在同一个单元格中将每个集合显示为matplotlib子图,不幸的是它不起作用(我尝试使用[=中的显示功能20=],完全没有成功)。
这是我使用的代码:
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)