如何在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
问题的方法。我在这里发表了一个答案: