Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在python的matplotlib中将来自不同函数的绘图聚合在一起_Python 3.x_Matplotlib_Subplot - Fatal编程技术网

Python 3.x 在python的matplotlib中将来自不同函数的绘图聚合在一起

Python 3.x 在python的matplotlib中将来自不同函数的绘图聚合在一起,python-3.x,matplotlib,subplot,Python 3.x,Matplotlib,Subplot,我有两个函数可以绘制不同的图,比如foo1和foo2。我在末尾添加了一个返回plt.gcf(),因此: def foo1(): #draw plot return plt.gcf() def foo2(): #draw plot return plt.gcf() 我编写了一些代码来保存这些绘图: fig1 = foo1() fig2 = foo2() fig1.savefig("tmp1") fig2.savefig("tmp2") 而且效果很好,接下来我想做: fi

我有两个函数可以绘制不同的图,比如foo1和foo2。我在末尾添加了一个返回plt.gcf(),因此:

def foo1():

  #draw plot
  return plt.gcf()

def foo2():

  #draw plot
  return plt.gcf()
我编写了一些代码来保存这些绘图:

fig1 = foo1()
fig2 = foo2()

fig1.savefig("tmp1")
fig2.savefig("tmp2")
而且效果很好,接下来我想做:

fig, (fig1,fig2) = plt.subplots(ncols=2)
fig1 = foo1()
fig2 = foo2()
fig.savefig("tmp")

这就是它失败的地方,因为我只得到两个空的绘图。有没有办法修改最后两行代码,使我的两个图形彼此相邻显示(如plt.subplot(ncols=2)),或者至少将它们保存在同一文件中?

您不需要使用特定功能或返回当前图形。您只需指定哪个
ax
绘制数据,然后
fig.savefig
将正常工作并保存两个轴,因为它们属于同一图形

fig, (ax1, ax2) = plt.subplots(ncols=2)
ax1.plot([1,2,3,4,5], [1,2,3,4,5], color="red")
ax2.plot([1,2,3,4,5], [1,4,9,25,36], color="blue")
fig.savefig("tmp.png")

如果保留该代码的前三行,则可以查看将两个轴保存在不同的文件中

你需要告诉我们你是怎么画这些图的。另外,您调用的fig1和fig2对象不是
s,而是
,因此有点混乱。我正在处理数百个函数,我试图找到一种方法来实现这一点,而不必重写所有代码。如果它们看起来都一样,我相信我们可以用几个参数将数百个函数压缩成一个函数。。。但如果你不给我们举个例子,我们就帮不了你。你是每个函数有一个子批还是总是2子批?我理解,不确定我现在可以分享代码,但谢谢你。我的问题是:如果对于每个图,我都有plt.gcf(),是否可以使用它,这样我就可以在fig中传递它,(fig1,fig2)=plt.subplot(ncols=2)并将这些图绘制为一个图的子图?据我所知,您只有一个图(它是
fig
)可以创建子图,所以
返回plt.gcf()
不提供任何信息,因为它总是返回相同的数字(
fig
!)。。。除非对代码中不能共享的部分的数字进行处理,否则我要说的是我有两个函数,它们返回图1和图2。他们是不同的,我可以保存他们,他们的工作。那部分很好。现在,我想创建一个新的图形,将图1和图2作为子图。