如何向现有图形添加新图?

How can I add a new plots to existing figures?

我是Python的新手,过去主要使用MatLab。我正在重写我的一个 MatLab 脚本,想知道如何向图形添加绘图。似乎在 python 中我一次只能打开一个图形,并且必须在打开第二个图形之前手动关闭 window。我的原始脚本有几百行长,但这是我想做的事情的 MWE。

import matplotlib.pyplot as plt
import numpy as np
#from mpl_toolkits import mplot3d

lst = [ 1, 1.5, 2, 4.5]
alpha= np.array(lst) 

#initialize tables for plots
xtable = []
ytable = []
y2table = []

#determine whether lst is a vector or an array for number of iterations of inner and outer loops
def size(arr):
    if len(arr.shape) == 1:
        return arr.shape[0], 1
    return arr.shape
[nn,mm] = size(alpha)

#create and plot data
for kk in range(nn):#= 1:nn
    x = [i for i in range(0, 10)]
    y = [alpha[kk]*i for i in range(0, 10)]
    y2 = [alpha[kk]*i**2 for i in range(0, 10)]

    #data for plot(s)
    xtable += [x]
    ytable += [y]
    y2table += [y2]
    
    #plot1 
    plt.plot(xtable,ytable)
    plt.hold on

    #plot2   
    plt.plot(xtable,y2table)
    plt.hold on 

在我的脚本中,这些实际上是 3D 图,但我认为这里没有必要。我只希望 for 循环为 lst 中的每个值 运行 并以两个数字结束,每个数字有 4 个图。 lst 的大小不固定,否则我会在循环中生成数据并稍后绘制。

提前感谢您的帮助

跟进 tdy 的评论:

#create plots:
fig1, ax1 = plt.subplots()
fig2, ax2 = plt.subplots()

#plot data
for kk in range(nn):#= 1:nn
    x = [i for i in range(0, 10)]
    y = [alpha[kk]*i for i in range(0, 10)]
    y2 = [alpha[kk]*i**2 for i in range(0, 10)]

    #data for plot(s)
    xtable += [x]
    ytable += [y]
    y2table += [y2]
    
    #plot1 
    ax1.plot(xtable,ytable)
    
    #plot2   
    ax2.plot(xtable,y2table)