Python 如何在一个图形中绘制多个numpy数组?

Python 如何在一个图形中绘制多个numpy数组?,python,numpy,matplotlib,Python,Numpy,Matplotlib,我知道如何绘制单个numpy数组 import matplotlib.pyplot as plt plt.imshow(np.array) 但有没有办法在一个图形中绘制多个numpy数组?我知道plt.subplot()可以显示多张图片。但对我来说似乎很难。我尝试使用for循环 fig, ax = plt.subplots() for i in range(10): ax.imshow(np.array) # i_th numpy array 这似乎是一个接一个地绘制单个numpy数

我知道如何绘制单个numpy数组

import matplotlib.pyplot as plt
plt.imshow(np.array)
但有没有办法在一个图形中绘制多个numpy数组?我知道
plt.subplot()
可以显示多张图片。但对我来说似乎很难。我尝试使用
for
循环

fig, ax = plt.subplots()
for i in range(10):
   ax.imshow(np.array)  # i_th numpy array
这似乎是一个接一个地绘制单个numpy数组。有没有办法把我的10个numpy阵列都画在一个图上


PS:这里每个我的2d numpy数组代表一张图片的像素<代码>绘图似乎绘制了不适合我的线条。

plt.subplot()的文档指定它接受一个
nrows
ncols
参数,并返回一个
fig
对象和一个
ax
对象数组。对于您的情况,如下所示:

图,axs=plt.子批次(3,4)
axs
现在包含一个二维数组,其中填充了
ax
对象,可以用来绘制各种对象,例如
axs[0,1]。plot([1,2],[3,4])
将在第一行第二列绘制某些对象

如果要删除特定的
ax
对象,可以使用
.remove()
,例如
axs[0,1]。remove()

对于
.imshow
而言,其工作方式与
.plot
完全相同:选择所需的ax并在其上调用
imshow

您案例中模拟图像数据的完整示例如下:

将numpy导入为np
将matplotlib.pyplot作为plt导入
图,axs=plt子批次(3,4)
images=[np.数组([[1,2],[3,4]]),用于范围(10)]
对于i,枚举中的ax(axs.flatte()):
如果i
结果:


我不清楚您希望看到的最终结果是什么。10个阵列的尺寸是否相同?如果是:将这10个阵列“一起”绘制后,您希望得到什么结果?如果继续打印,最新的数组将与其他数组重叠。@stfwn是的,它们是相同的维度。我想要的结果是三排无花果。每行中的图数为4,4,2OP不希望在不同的子图中绘制。OP希望在同一个图形上覆盖多个数组,因此忽略了一个重要信息。这里我的numpy数组表示图片的像素(numpy数组的形状是128*128)。我尝试过使用axs.plt,它绘制线条。我想我仍然需要使用plt.imshow来显示图片。对于
imshow
,它的工作原理与
plot
相同。我编辑了我的答案来展示一个完整的例子。