matplotlib:多個子圖並排放置


引言

  • 論文中有時會用到介紹數據集,每類圖像並排放置的顯示方式,所以可以自己定制這種類型很有必要(如下圖樣式)

相關代碼

# -*- coding:utf-8 -*-
from pathlib import Path
import random

from matplotlib import pyplot as plt
from PIL import Image

# 讀取圖像到列表中
image_path = Path(r'make_figure\fmd')
all_selected_images = []
selected_images = []

for one_category in image_path.iterdir():
    if one_category.is_dir():
        selected_images = list(one_category.iterdir())
        random.shuffle(selected_images)
        selected_images = selected_images[:10]
    all_selected_images.extend(selected_images)

# 繪制多個子圖
plt.figure()
for i in range(1, 101):
    im = Image.open(str(all_selected_images[i-1]))
    im = im.resize((512, 384))
    ax = plt.subplot(10, 10, i)
    plt.imshow(im)

    # 去除坐標軸
    plt.xticks([])
    plt.yticks([])

    # 去除黑框
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)
    ax.spines['bottom'].set_visible(False)
    ax.spines['left'].set_visible(False)

# 設置各個子圖間間距
plt.subplots_adjust(left=0.10, top=0.88, right=0.65, bottom=0.08, wspace=0.02, hspace=0.02)
plt.show()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM