【发布时间】:2015-02-25 18:34:04
【问题描述】:
我有一个主程序main.py,我在其中调用各种函数,每个函数都将一些东西绘制到一个数字上。即所有函数图都将细节附加到 1 个主图。
目前我将其设置为,例如:
main.py:
import matplotlib.pylab as plt
a,b,c = 1,2,3
fig = func1(a,b,c)
d,e,f = 4,5,6
fig = func2(d,e,f)
plt.show()
函数1:
def func1(a,b,c):
import matplotlib.pylab as plt
## Do stuff with a,b and c ##
fig = plt.figure()
plt.plot()
return fig
函数2:
def func2(d,e,f):
import matplotlib.pylab as plt
## Do stuff with d,e and f ##
fig = plt.figure()
plt.plot()
return fig
这种方法已经成功了一半,但它为每个函数绘制了单独的图形,而不是叠加它们。
如何获得 1 个图,所有图的结果相互叠加?
【问题讨论】:
-
plt.figure()创建一个新图形。如果你想绘制一个现有的,不要在你的绘图函数中使用它。 -
如果我从函数中删除 plt.figure() 并直接在函数中绘图,它仍然会为每个函数创建一个新图形。
-
我不相信你:) - 请注意,你没有在你的函数中绘制任何东西,所以你的示例代码很难验证它是否有效。
-
哈哈,函数里有“plt.plot”这行,是不是在画什么?如果那条线不存在,我如何创建一个图形对象发送到主程序以在那里绘制?
标签: python matplotlib plot