如何在同一窗口绘制来自不同函数的两个子图?

2 投票
1 回答
2657 浏览
提问于 2025-04-17 23:38

出于某些特定的原因,我有两个函数,每个函数都会在两个不同的窗口中创建一个图表。有没有办法把这两个图表合并到一个窗口里,而不把这两个函数合并在一起呢?谢谢!

补充说明:我有两个相关的函数和一个数据库:第一个函数在file1.py中,绘制一个二维线图:

plt.figure("TEST12") 
ax=plt.subplot(111)
ax.plot(array[:,10])

在file2.py中是我的另一个函数,它绘制一个填充的轮廓图:

plt.figure("TEST13")
ax = plt.subplot(111)
ax.contourf(x,y,data)
plt.gca().set_aspect('equal')

如果我像往常一样使用plt.show,结果会是两个不同的窗口。

1 个回答

6

把你的函数改一下,让它可以接收一个Axes对象作为参数,这样就可以在这个对象上进行绘图了:

def fun1(ax):
    ax.plot(range(5))

def fun2(ax):
    ax.plot(range(5)[::-1])


fig, ax = plt.subplots(1, 1)

fun1(ax)
fun2(ax)

plt.draw()

撰写回答