Python 加速Matplotlib

Python 加速Matplotlib,python,matplotlib,Python,Matplotlib,目前我正在制作一个实时绘图,但是可视化速度非常慢。我想知道在Matplotlib中,通常可以做哪些事情来加快速度: 后端如何影响性能?有这样的后端吗 是否比其他工具更适合实时绘图 我可以降低分辨率以增加FPS吗 如果减小窗口大小,为什么绘图的FPS会增加?为什么? 如果切换到全屏模式,FPS是否会急剧下降 我还尝试关闭所有我不需要的东西: ax.set_xticklabels(()) ax.set_yticklabels(()) ax.set_xticks([]) ax.set_yticks

目前我正在制作一个实时绘图,但是可视化速度非常慢。我想知道在Matplotlib中,通常可以做哪些事情来加快速度:

  • 后端如何影响性能?有这样的后端吗 是否比其他工具更适合实时绘图
  • 我可以降低分辨率以增加FPS吗
  • 如果减小窗口大小,为什么绘图的FPS会增加?为什么? 如果切换到全屏模式,FPS是否会急剧下降
我还尝试关闭所有我不需要的东西:

ax.set_xticklabels(())
ax.set_yticklabels(())
ax.set_xticks([])
ax.set_yticks([])
ax.axis('off')
ax.get_xaxis().set_visible(False)
ax.get_yaxis().set_visible(False)
然而,这种影响可以忽略不计。还有什么我可以关掉的吗

我还想知道在创建图形时是否可以关闭打开的窗口的按钮(主页按钮等,见下文)。关闭这些按钮可以提高速度吗

我还发现做以下事情

fig.canvas.draw_idle()
fig.canvas.start_event_loop(1e-9)
更新绘图的速度比

fig.canvas.draw_idle()
self.fig.canvas.update()
self.fig.canvas.flush_events()
是否有更好的方法更新绘图中的对象

后端如何影响性能?是否有后端比其他后端更适合实时绘图

后端扮演两个角色:首先,它呈现所有内容,因此呈现速度越快,输出速度越快。其次,所使用的GUI工具包可能会起到一定作用,因为它可能会限制已更新画布的显示速度。例如,
“Qt5Agg”
似乎比
“TkAgg”

我可以降低分辨率以增加FPS吗

您可以缩小图形,或使用更小的dpi。两者都将减少需要绘制的像素数量,从而加快绘制速度

如果减小窗口大小,为什么绘图的FPS会增加?为什么切换到全屏模式时FPS会急剧下降

如上所述,需要在屏幕上绘制的像素越多,渲染速度就越慢

还有什么我可以关掉的吗

我们不知道你的代码中有什么,所以我们不知道关闭什么

关闭这些按钮可以提高速度吗

没有



最后,
fig.canvas.draw_idle()
本身应该足以更新绘图,因为通常情况下,事件循环已经在运行。重新启动事件循环没有帮助。

尝试通过多线程处理您的CPUC来完成它。您能给出一个简单的示例吗?您会使用Python的多处理工具箱绘制对象吗?谢谢您的回答。我尝试使用
rcParams[“figure.dpi”]=50
来降低分辨率。然而,现在许多物体只是小得多。如何正确降低需要绘制的像素数量?这就是降低图形大小或dpi的目的。我认为,如果没有具体的问题,这不会导致任何结果。