matplotlib: 有关 Backend 的说明
什么是Backend?
Matplotlib针对许多不同的用例和输出格式。
有些人在python shell中交互式地使用Matplotlib,并在键入命令时弹出绘图窗口。
有些人使用木星笔记本,绘制内联图来快速分析数据。
还有一些人将Matplotlib嵌入到图形用户界面中,如PyQt或PyGObject,以构建丰富的应用程序。
有些人在批处理脚本中使用Matplotlib从数值模拟中生成postscript图像,还有一些人运行web应用程序服务器动态地提供图形。
为了支持所有这些用例,Matplotlib可以针对不同的输出,这些功能中的每一个都被称为后端。
“前端”是面向用户的代码,也就是绘图代码,而“后端”负责所有幕后的工作,以制作图形。
有两种类型的后端:
- 用户界面后端(用于PyQt/PySide、PyGObject、Tkinter、wxPython或macOS/Cocoa);也称为“交互式后端”;
- 硬拷贝后端制作图像文件(PNG, SVG, PDF, PS;也称为“非交互式后端”)。
如何选择一个后端
有三种方式来配置你的后端:
1. 修改matplotlibrc文件中的rcParams["backend"](默认值:'agg')参数
2. MPLBACKEND环境变量: 可以将这个可选变量设置为选择Matplotlib后端
3. 使用函数matplotlib.use ()
下面给出了更详细的描述。
如果存在多个配置,则列表中的最后一个优先; 例如,调用matplotlib.use()将覆盖matplotlibrc中的设置。
如果没有显式设置后端,Matplotlib会根据系统上可用的内容以及GUI事件循环是否已经运行自动检测一个可用的后端。
在Linux上,如果没有设置环境变量DISPLAY,则“事件循环”被标识为“headless”,这将导致回退到非交互后端(agg)。
下面是配置方法的详细说明:
1. 修改matplotlibrc文件(路径为: C:\Program Files\Python38\Lib\site-packages\matplotlib\mpl-data)中的rcParams["backend"](默认值:'agg')参数.
2. 设置MPLBACKEND环境变量:
您可以为当前shell或单个脚本设置环境变量。
在Unix:
export MPLBACKEND=qt5agg
python simple_plot.py
MPLBACKEND=qt5agg python simple_plot.py
在Windows上,只有前者是可能的:
set MPLBACKEND=qt5agg
python simple_plot.py
设置这个环境变量将覆盖任何matplotlibrc中的后端参数,即使在您当前的工作目录中有matplotlibrc。因此,全局设置MPLBACKEND,例如在你的.bashrc或.

Matplotlib的后端决定了图形的输出方式和交互性。后端分为用户界面后端(如Qt5Agg、TkAgg)和硬拷贝后端(如PNG、SVG)。选择后端可通过修改matplotlibrc文件、设置环境变量MPLBACKEND或使用matplotlib.use()函数。默认情况下,Matplotlib会自动选择合适的后端,但用户可根据需求手动切换。例如,使用`matplotlib.use('Qt5Agg')`可在交互式环境中使用Qt5Agg后端。

最低0.47元/天 解锁文章
494

被折叠的 条评论
为什么被折叠?



