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

How to create a function that outputs a matplotlib figure?

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

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

我的函数大致如下所示:

def graphs(...,fig):
...
ax = plt.figure(fig)
...
...
plt.show

目前该函数没有 return 任何东西,有什么方法可以输出图形或者至少让它在第一个图形之后不会停止创建图形?

使用plt.figure().canvas.draw()。检查此线程:How to update a plot in matplotlib?

你的方法就变成了

def graphs(..., fig):
    ax = plt.figure(fig)
    plt.figure().canvas.draw()

最后,在循环结束时调用 plt.show()

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

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