Matplotlib 的默认 GUI 后端是什么?

sdb*_*bbs 2 python matplotlib

我制作了以下脚本,我们称之为test-matplotlib-printbackend.py

#!/usr/bin/env python

import matplotlib as mpl
import matplotlib.pyplot as plt

xx = range(100)
yy = [i*2+5 for i in xx]

fig, ax = plt.subplots()
ax.plot(xx, yy)

print("Matplotlib plt backend: {}".format(plt.get_backend()))

plt.show()
Run Code Online (Sandbox Code Playgroud)

对于 Windows 10 上 MINGW64 下的 Python3,以及 Windows 10 上 Anaconda 下的 Python3,我得到打印输出:

Matplotlib plt backend: Qt5Agg
Run Code Online (Sandbox Code Playgroud)

但是,对于 Rasbian(Raspberry Pi 的 Debian 操作系统)上的 Python3,我得到了打印输出:

Matplotlib plt backend: TkAgg
Run Code Online (Sandbox Code Playgroud)

这让我很困惑,因为我有点期望 TkAgg 将成为所有平台上 matplotlib 的默认 GUI 后端!?

所以,我只是想知道 - 是否在任何地方记录了不同平台的 Matplotlib 的默认 GUI 后端?

Imp*_*est 5

后端选择逻辑不是很透明,也没有很好的文档记录。

在现代 matplotlib 中没有“默认后端”,即rcParams['backend']设置为“哨兵”。
导入 matplotlib 后,从候选列表 ["macosx", "qt5agg", "qt4agg", "gtk3agg", "tkagg", "wxagg"]中选择第一个工作后端。

为了避免这种自动选择,您可以通过rcParams['backend']参数或MPLBACKEND环境变量手动设置后端。那部分被记录在案