Python Matplotlib的默认GUI后端是什么?

Python Matplotlib的默认GUI后端是什么?,python,matplotlib,Python,Matplotlib,我制作了以下脚本,我们称之为test-matplotlib-printbend.py: !/usr/bin/env python 将matplotlib导入为mpl 将matplotlib.pyplot作为plt导入 xx=范围100 yy=[i*2+5表示xx中的i] 图,ax=plt子批次 ax.xx,yy printMatplotlib plt后端:{}.formatplt.get_后端 节目 对于Windows 10上MINGW64下的Python3,以及Windows 10上Anaco

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

!/usr/bin/env python 将matplotlib导入为mpl 将matplotlib.pyplot作为plt导入 xx=范围100 yy=[i*2+5表示xx中的i] 图,ax=plt子批次 ax.xx,yy printMatplotlib plt后端:{}.formatplt.get_后端 节目 对于Windows 10上MINGW64下的Python3,以及Windows 10上Anaconda下的Python3,我得到了打印输出:

Matplotlib plt backend: Qt5Agg
Matplotlib plt backend: TkAgg
但是,对于Rasbian Raspberry Pi的Debian OS上的Python3,我得到了打印输出:

Matplotlib plt backend: Qt5Agg
Matplotlib plt backend: TkAgg
这让我很困惑,因为我有点期待TkAgg会成为所有平台上matplotlib的默认GUI后端


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

默认后端在mpl.rcParams['backend']中定义。在Linux_x64上,此设置为“Qt5Agg”。matplotlib.backends中的_get_running_interactive_framework函数。uuu init_u检查可用的后端。PyQt5在优先级列表中是最高的。pyplot.switch_backend函数使用_get_running_interactive_框架在导入时选择有效使用的后端。在此处搜索线路开关\u backendrcParams[backend]:


您可以检查PyQt5是否在Rasbian上可用,以及rcParams条目是什么。回到您的实际问题:我不知道这是否有文档记录,但是matplotlib代码对于一个庞大的库来说相当容易阅读。

后端选择逻辑不是非常透明,文档记录也不充分

在现代matplotlib中,没有默认后端,即rcParams['backend']设置为sentinel。 导入matplotlib后,选择[macosx、qt5agg、qt4agg、gtk3agg、tkagg、wxagg]中的第一个工作后端


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

证明了mpl中定义了默认后端的语句。rcParams['backend']不准确。参考已接受的答案