Linux环境下Matplotlib绘图中文乱码问题

booo / 2024-10-23 / 原文

问题:如图所示,中文乱码

1. 准备ttf字体文件:

路径:	C:\Windows\Fonts

例如楷体:simkai.ttf

2. 查看当前环境的matplot字体路径:

import matplotlib
print(matplotlib.matplotlib_fname())

运行结果:

/home/3kyou/.local/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc

3. 将ttf文件放到mpl-data/fonts/ttf下

4. 查看ttf文件的Family Name:

from matplotlib import font_manager
for font in font_manager.fontManager.ttflist:
    print(font.fname,font.name)

结果:红色是我们需要的family name,绿色是对应的ttf文件,可以看到simkai.ttf 对应的名字是kaiti
(这里使用不区分大小写)

5. 更改matplotlibrc文件内容:

#font.family:  sans-serif
#font.sans-serif: kaiti
#axes.unicode_minus: False

6. 切到用户目录,例如 /home/3kyou,清除缓存:

rm -rf .cache

7. 再次运行即可得到正确显示效果