我在多个模块中创建了几个图形,我想将它们叠加在我的main.py
中。
我能否返回一个可重复使用的图形/绘图,以便在main.py
中创建组合图形?
谢谢!
我在多个模块中创建了几个图形,我想将它们叠加在我的main.py
中。
我能否返回一个可重复使用的图形/绘图,以便在main.py
中创建组合图形?
谢谢!
解决方案是在main.py中设置一个figure / axis,然后将axis句柄传递给每个模块。 以下是最简单的示例:
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()
这里的函数代表模块。
或者,您可以在主模块中创建一个图形,并使用plt.sca
将其添加到每个模块的当前轴上。但是这似乎是一种不太健壮的解决方案。
basemap
。看起来basemap
只是使用matplotlib
进行绘图的映射。因此,您应该能够以相同的方式将其添加到当前图形/轴中。根据 http://matplotlib.org/basemap/users/examples.html: "您还可以使用与 Basemap 相关联的 Axes 实例直接在地图上绘制 matplotlib pyplot[...]。"也许ax = map.get_axis()
? - Ed Smithbasemap
问题的方法。我在这里发布了一个答案:https://dev59.com/rIzda4cB1Zd3GeqPnID0#31172618 - Shai Efrati