Linux环境下Python3使用Matplotlib绘图中文乱码问题解决实践

环境:
CentOS 7
Python3.6

1.1. 首先,把windows10环境下的中文字体拷贝到Linux系统中。

windows10字体默认文件夹为C:\Windows\Fonts。
本文拷贝了宋体(simsun.ttc)、黑体(simhei.ttf)、楷体(simkai.ttf)等三组字体。

在Linux字体路径中新建中文字体文件夹,拷贝文件:

[root@bigdatahost fonts]# mkdir chinese
[root@bigdatahost fonts]# cp /home/python/simkai.ttf /usr/share/fonts/chinese/simkai.ttf
[root@bigdatahost fonts]# chmod -R 755 /usr/share/fonts/chinese

1.2. 建立字体索引信息,更新字体缓存

[root@bigdatahost python]# cd /usr/share/fonts/chinese
[root@bigdatahost chinese]# mkfontscale
[root@bigdatahost chinese]# mkfontdir
[root@bigdatahost chinese]# fc-cache

1.3. 配置字体

[root@bigdatahost python]# vi /etc/fonts/fonts.conf

可以看到一个Font list,即字体列表,把如下所设置的添加字体目录加如。

<dir>/usr/share/fonts/chinese</dir>

清楚缓存

[root@bigdatahost python]# fc-cache

2.1. 查看matplotlib文件路径

在Python3程序中输出matplotlib字体配置路径:

    #import matplotlib
    #print(matplotlib.matplotlib_fname())

2.2. 拷贝字体文件到matplotlib字体库中

cd /usr/local/python3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc
mv simhei.ttf fonts/ttf/simhei.ttf

2.3. 配置matplotlib字体库

例如,没有中文显示时,提示如下:

findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans.

修改配置文件:

vi /usr/local/python3/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

matplotlibrc配置文件默认是以”#”开头,如果不用则使用”##”。
对照修改内容如下:

#font.family:  sans-serif
f#ont.sans-serif: SimHei, SimSun, KaiTi
#axes.unicode_minus: False

本文使用python用户,则需要进入python用户目录下,缓存文件在此:

[python@bigdatahost ~]$ rm -rf .cache

!清错缓存,则无效。

import matplotlib.pyplot as plt
......

plt.rcParams['font.family']='sans-serif'
plt.rcParams['font.sans-serif']=['KaiTi']        #&#x663E;&#x793A;&#x4E2D;&#x6587;&#x6977;&#x4F53;
#plt.rcParams['font.sans-serif']=['SimHei']      #&#x663E;&#x793A;&#x4E2D;&#x6587;&#x9ED1;&#x4F53;
plt.rcParams['axes.unicode_minus']=False

Original: https://blog.csdn.net/xiaoyw/article/details/119699910
Author: 肖永威
Title: Linux环境下Python3使用Matplotlib绘图中文乱码问题解决实践

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/768756/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球