Matplotlib 在一个程序中使用交互式和非交互式后端

Matplotlib 在一个程序中使用交互式和非交互式后端,matplotlib,backend,Matplotlib,Backend,我正在运行使用PyQt4编写的代码,该代码使用matplotlib的Qt4Agg后端在windows中显示实时绘图。同时,我想在后台线程中使用matplotlib生成(不同的)图形,这些图形只保存到文件中,不显示在屏幕上 我可以在后台线程中使用Qt4Agg,但是我得到了一堆 QPixmap: It is not safe to use pixmaps outside the GUI thread 警告,在某些情况下还会崩溃 据我所见,matplotlib目前支持在任何给定时间仅使用一个后端(可

我正在运行使用
PyQt4
编写的代码,该代码使用matplotlib的
Qt4Agg
后端在windows中显示实时绘图。同时,我想在后台线程中使用matplotlib生成(不同的)图形,这些图形只保存到文件中,不显示在屏幕上

我可以在后台线程中使用
Qt4Agg
,但是我得到了一堆

QPixmap: It is not safe to use pixmaps outside the GUI thread
警告,在某些情况下还会崩溃


据我所见,matplotlib目前支持在任何给定时间仅使用一个后端(可以通过
切换\ u后端
进行更改,但这会关闭所有现有图形)。是否有一些方法可以绕过此限制,并分配每个图形的后端?

据我所知,只有在不使用pyplot接口的情况下才可以

例如,使用完整的OO接口进行简单绘图:

from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure

fig = Figure()
canvas = FigureCanvas(fig)
ax = fig.add_subplot(1,1,1)
ax.plot([1,2,3])
canvas.print_figure('test.png')

HTH

对于这个答案,有没有办法给你更多的答案?你让我开心,真的。:-)谢谢你+1个就够了如果我们在Python会议上见面,我不会拒绝啤酒。