matplotlib 使用循环创建多个图,并在一个[重复]中显示单独的图

xxls0lw8  于 2023-06-23  发布在  其他
关注(0)|答案(2)|浏览(103)

此问题已在此处有答案

How to plot in multiple subplots(13个回答)
13天前关闭。
我从这个论坛上看到了答案,并有一个问题。如何在一个图中显示单独的图。尝试使用plt.subplots(1,4)但不起作用。下面是示例代码:

import matplotlib.pyplot as plt
x=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]
y=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]
for i in range(len(x)):
    plt.figure()
    plt.plot(x[i],y[i])
    

#plt.show()
bnlyeluc

bnlyeluc1#

你可以使用plt.subplot()如下:

import matplotlib.pyplot as plt
x=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]
y=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]
plt.figure(figsize=[10,10])

for i in range(len(x)):
    plt.subplot(1,len(x)+1,i+1)
    plt.plot(x[i],y[i])
    plt.title('Plot: '+str(i+1))
plt.show()

以下是输出图:

kfgdxczn

kfgdxczn2#

以下可能会做到这一点。它使用zip循环遍历列表(x和y有4个嵌套列表)和子图(在本例中为2乘2)。

x=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]
y=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]

fig = plt.figure(figsize=(10, 6))

for i,j in zip(list(range(0,4)), list(range(1,5)) ):
    ax = fig.add_subplot(2,2,j)
    ax.plot(x[i], y[i])

相关问题