Python 如何创建输出matplotlib图形的函数?

Python 如何创建输出matplotlib图形的函数?,python,matplotlib,output,figure,Python,Matplotlib,Output,Figure,我的目标是创建一个输出图形的函数 如果我尝试在脚本中多次调用我的函数,它只显示第一次调用时的图形。只有当我关闭第一个图形时,程序才会创建第二个图形,以此类推 我的函数大致如下所示: def graphs(...,fig): ... ax = plt.figure(fig) ... ... plt.show 目前函数不返回任何内容,是否有一种方法可以输出图形,或者至少使其在第一个图形之后不停止创建图形 使用plt.figure().canvas.draw()。检查此线程: 然后,您的方法将成为

我的目标是创建一个输出图形的函数

如果我尝试在脚本中多次调用我的函数,它只显示第一次调用时的图形。只有当我关闭第一个图形时,程序才会创建第二个图形,以此类推

我的函数大致如下所示:

def graphs(...,fig):
...
ax = plt.figure(fig)
...
...
plt.show
目前函数不返回任何内容,是否有一种方法可以输出图形,或者至少使其在第一个图形之后不停止创建图形

使用
plt.figure().canvas.draw()
。检查此线程:

然后,您的方法将成为

def graphs(..., fig):
    ax = plt.figure(fig)
    plt.figure().canvas.draw()
最后,在循环结束时调用
plt.show()

for ...:
  graphs(...., arg)
plt.show()

这将在多个窗口中绘制所有图形。请注意,它将为每个图形创建一个窗口。如果您有大量图像,请使用子图

您是否每次都在绘制新的图形?或者是同一个图形在更新它的值?每次都是新的东西。理想情况下,每次调用函数时都会生成一个新图形,而不关闭已创建的图形,您应该编写函数,该函数接受一个轴并返回添加的新图形。