5

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

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

QPixmap: It is not safe to use pixmaps outside the GUI thread

警告,并且在某些情况下还会崩溃。

据我所知,matplotlib 目前支持在任何给定时间仅使用一个后端(可以通过 更改switch_backend,但会关闭所有现有图形)。有没有办法解决这个限制,并分配每个数字后端?

4

1 回答 1

9

据我所知,仅当您不使用 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')

高温高压

于 2013-08-15T20:22:02.080 回答