未經檢驗的,但這裏的總體思路。
import matplotlib.pyplot as plt
import glob
import numpy as np
# glob won't preserve the order that the files are in (if you need that, you can
# simply do what you were already doing. Globbing is simpler, though.
filenames = glob.glob('c:/path/to/your/photos/*.png')
# Forward slashes work for pathnames on windows, too (at least in python)
# Let's not assume that there's an exact square number of images
nrows = np.ceil(np.sqrt(len(filenames))).astype(int)
ncols = len(filenames) // nrows
# Subplots returns a figure and a _2d array_ of axes in a grid.
fig, axes = plt.subplots(nrows, ncols)
# Note that we're iterating over ``axes.flat``, not just axes (which is 2d)
for filename, ax in zip(filenames, axes.flat):
data = plt.imread(filename)
ax.imshow(data)
# You might want to hide the labels, border, etc
ax.axis('off')
# Not necessary, but this will give you more evenly located subplots
fig.tight_layout()
plt.show()
非常感謝這種反應,但是當我這樣我得到: AttributeError的:「模塊」對象有我的一部分沒有屬性「suplots」 – Freeman
錯字。應該是'subplots'。 –
啊謝謝你,只是測試和閱讀。 – Freeman