[英]Grid of images using a loop in Jupyter-Notebook. How?
我想在Jupyter筆記本中以2x3矩陣格式顯示var_1.png,...,var_40.png
圖像。 但是,我只能手動進行:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
%matplotlib inline
img1=mpimg.imread('Variable_8.png')
img2=mpimg.imread('Variable_17.png')
img3=mpimg.imread('Variable_18.png')
...
fig, ((ax1, ax2, ax3), (ax4,ax5,ax6)) = plt.subplots(2, 3, sharex=True, sharey=True)
ax1.imshow(img1)
ax1.axis('off')
ax2.imshow(img2)
ax2.axis('off')
....
我想要更清潔的東西。 類似於列表理解的東西,它指定了
image=[img(i)=mpimg.imread('Variable_(i).png') for i in [8,17,28, ..]
[ax[j].imshow(img(j)),ax[j].axis('off') for j in range(len(image))]
一些幫助?
關於什么:
imgs_names = ...
imgs = [mpimg.imread(name) for name in imgs_names]
n_rows = 2
n_cols = 3
fig, axes = subplots(n_rows, n_cols)
[(axes[i][j].imshow(imgs[i*n_cols + j]), axes[i][j].axis('off')) for i in range(n_rows) for j in range(n_cols)]
?
Rmk:如果n_cols=1
或n_rows=1
,這將n_rows=1
,因為axes
是一個列表,而不是數組。
如果列表理解要做的事情不止一件事,它們很快就會變得難以理解。 如果列表的內容根本沒有實際使用,則使用列表推導似乎也被認為是不好的風格。
因此,我提出以下建議
import matplotlib.pyplot as plt
images = [plt.imread(f"Variable_{i}.png") for i in [8,17,28,29,31,35]]
fig, axes = plt.subplots(2, 3, sharex=True, sharey=True)
for img, ax in zip(images, axes.flat):
ax.imshow(img)
ax.axis('off')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.