Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python `plt.imshow`只生成suplot的最后一个图像_Python_Image_Matplotlib_Subplot - Fatal编程技术网

Python `plt.imshow`只生成suplot的最后一个图像

Python `plt.imshow`只生成suplot的最后一个图像,python,image,matplotlib,subplot,Python,Image,Matplotlib,Subplot,我正试着在我的笔记本上打印四个DICOM图像样本 我创建了以下内容: import os import pydicom as dicom import pandas as pd import numpy as np import matplotlib.pyplot as plt PATH = '../data/train/' files = os.listdir(PATH) np.random.seed(42) random_four = np.random.randint(0, len(f

我正试着在我的笔记本上打印四个DICOM图像样本

我创建了以下内容:

import os
import pydicom as dicom
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

PATH = '../data/train/'
files = os.listdir(PATH)

np.random.seed(42)
random_four = np.random.randint(0, len(files), size=4)
subplots = [[0,0],[0,1],[1,0],[1,1]]

fig, axs = plt.subplots(2,2, figsize=(8,8))

for image_number in range(4):
    sample = dicom.dcmread(PATH+files[random_four[image_number]])
    axs[subplots[image_number]] = plt.imshow(sample.pixel_array, cmap='gray')
这将生成一个子图,但实际上只有最后一张图像显示:

如何使用子窗口将这四幅图像正确打印到笔记本上?

使用

您还可以使用
zip
axs.ravel()
在子批次上循环:

fig, axs = plt.subplots(2, 2, figsize=(8,8))

for ax, image_number in zip(axs.ravel(), range(4)):
    sample = dicom.dcmread(PATH+files[random_four[image_number]])
    ax.imshow(sample.pixel_array, cmap='gray')
或使用
枚举

for image_number, ax in enumerate(axs.ravel()):