Matplotlib常见问题
1. 显示中文乱码
- 问题:matplotlib 在系统上没有找到对应的中文字体。
- 解决:
在代码中手动指定系统上的中文字体。
1
2
3
4
5
6
7
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。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!