1. 显示中文乱码
- 问题:matplotlib 在系统上没有找到对应的中文字体。
- 解决:
在代码中手动指定系统上的中文字体。 import matplotlib as mpl import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties zhfont = mpl.font_manager.FontProperties(fname='/usr/share/fonts/xxx') # ... plt.title(u'图表标题', fontproperties=zhfont) plt.show()
【注】笔者使用的是 Arch Linux 系统,Arch Linux 上的中文字体安装可参考 Fonts。如果是其它 Linux 发行版,也可以这篇文章,其中很多中文字体都是开源的,在其它 Linux 发行版上一般也有对应安装包。
参考资料:matplotlib 显示宋体和 Times New Roman。
2. matplotlib is currently using agg which is a non-gui backend so cannot show the figure
- 问题:缺少 GUI 后端。
- 解决:
Debian 系:安装
python-tk
或python3-tk
。 ArchLinux 系:安装tk
。 RedHat 系:安装python-tkinter
或python3-tkinter
。
参考资料:matplotlib is currently using agg which is a non-gui backend so cannot show the figure。