如何在matplotlib中叠加图形

如何在matplotlib中叠加图形,matplotlib,plot,figure,Matplotlib,Plot,Figure,我在多个模块中创建了几个图形,并希望将它们叠加到我的main.py中 我是否可以返回一个可用的地物/绘图,该地物/绘图可以在main.py中重用以创建组合地物 谢谢 解决方案是在main.py中设置图形/轴,然后将轴句柄传递给每个模块。作为一个简单的例子 import matplotlib.pyplot as plt import numpy as np #from mod import plotsomefunction #from diffrentmod import plotsomeothe

我在多个模块中创建了几个图形,并希望将它们叠加到我的
main.py

我是否可以返回一个可用的地物/绘图,该地物/绘图可以在
main.py
中重用以创建组合地物


谢谢

解决方案是在main.py中设置图形/轴,然后将轴句柄传递给每个模块。作为一个简单的例子

import matplotlib.pyplot as plt
import numpy as np
#from mod import plotsomefunction
#from diffrentmod import plotsomeotherfunction

def plotsomefunction(ax, x):

    return ax.plot(x, np.sin(x))

def plotsomeotherfunction(ax, x):

    return ax.plot(x,np.cos(x))


fig, ax = plt.subplots(1,1)
x = np.linspace(0,np.pi,1000)
l1 = plotsomefunction(ax, x)
l2 = plotsomeotherfunction(ax, x)
plt.show()
其中函数表示模块


或者,您可以在main中创建一个图形,并使用
plt.sca
将其添加到每个模块中的当前轴。这似乎是一个不太可靠的解决方案。

太好了!非常感谢你!我现在正在努力解决一个离题的问题:如何对
basemap
对象执行相同的操作。更简单地说:我在一个模块中创建了一个
basemap
绘图,我想使用其他模块进行绘图。有什么想法吗?对不起,
basemap
不是我用过的东西。看起来basemap只是使用仍用于绘图的
matplotlib
进行映射。因此,您应该能够以相同的方式将其添加到当前图形/轴。根据:“您还可以使用与底图关联的axis实例,使用matplotlib pyplot[…]直接在地图上绘图。”可能
ax=map.get_axis()
?谢谢!不幸的是
basemap
没有
map.get\u axis()
。它确实有
map.ax
,可以引用到
ax
。我尝试了一下,得到了:
AttributeError:'Figure'对象没有属性“add\u collection”
。现在我需要了解为什么以及如何解决它。嗨@EdSmith。基于您在这里的帮助,我还找到了解决我遇到的
basemap
问题的方法。我在这里发表了一个答案: