您可以根据. _ _ _subplot
matplotlib.pyplot
下面是一个基于您的函数的示例,允许在图中绘制多个轴。您可以在图形布局中定义所需的行数和列数。
def plot_figures(figures, nrows = 1, ncols=1):
"""Plot a dictionary of figures.
Parameters
----------
figures : <title, figure> dictionary
ncols : number of columns of subplots wanted in the display
nrows : number of rows of subplots wanted in the figure
"""
fig, axeslist = plt.subplots(ncols=ncols, nrows=nrows)
for ind,title in enumerate(figures):
axeslist.ravel()[ind].imshow(figures[title], cmap=plt.gray())
axeslist.ravel()[ind].set_title(title)
axeslist.ravel()[ind].set_axis_off()
plt.tight_layout() # optional
nrows
基本上,该函数根据您想要的行数 ( ) 和列数 ( )在图中创建多个轴,ncols
然后遍历轴列表以绘制图像并为每个图像添加标题。
请注意,如果您的字典中只有一个图像,则您以前的语法plot_figures(figures)
将起作用,nrows
并且默认ncols
设置为1
。
您可以获得的示例:
import matplotlib.pyplot as plt
import numpy as np
# generation of a dictionary of (title, images)
number_of_im = 6
figures = {'im'+str(i): np.random.randn(100, 100) for i in range(number_of_im)}
# plot of the images in a figure, with 2 rows and 3 columns
plot_figures(figures, 2, 3)