返回Matplotlib轴的Python函数——如何将它们组合在一个图中?

返回Matplotlib轴的Python函数——如何将它们组合在一个图中?,matplotlib,Matplotlib,假设我创建了返回Axis对象的函数。例如,假设正弦和余弦函数的绘图 def func1(): fig, ax = plt.subplots() x = np.linspace(0, 2*np.pi) ax.plot(x, np.sin(x)) return ax def func2(): fig, ax = plt.subplots() x = np.linspace(0, 2*np.pi) ax.plot(x, np.cos(x))

假设我创建了返回Axis对象的函数。例如,假设正弦和余弦函数的绘图

def func1():
    fig, ax = plt.subplots()
    x = np.linspace(0, 2*np.pi)
    ax.plot(x, np.sin(x))
    return ax

def func2():
    fig, ax = plt.subplots()
    x = np.linspace(0, 2*np.pi)
    ax.plot(x, np.cos(x))
    return ax
当然,这些函数返回以下曲线图:

如何将这两个图形组合成一个与以下代码和图像等效的图形

fig, ax = plt.subplots()
xs = np.linspace(0, 2 * np.pi)
ax.plot(x, np.cos(x))
ax.plot(x, np.sin(x))
plt.show()

也就是说,我可以像下面的伪代码那样做吗

ax1 = func1()
ax2 = func2()

fig = plt.figure()
fig.append_axes(ax1)
fig.append_axes(ax2)

plt.show()

以下是一个简单的解决方案:

def func1():
    x = np.linspace(0, 2*np.pi)
    plt.plot(x, np.sin(x))

def func2():
    x = np.linspace(0, 2*np.pi)
    plt.plot(x, np.cos(x))


func1()
func2()
输出:

是什么阻止您返回
x
y
而不是
ax
?这会让事情变得更简单。你知道,这很有趣,但你是对的。这是一种“见树不见林”之类的东西……我有点想删除它,但我想我会放弃,以防其他人发现自己寻找答案的时间比他们愿意承认的时间长。