centos matplot中文字体显示方框问题解决
1、下载安装中文字体,2、加载字体库
pip3 install matplotlib==3.3.2
- 安装完成之后终端输入python3, 输入以下命令,获取matplotlibrc文件所在路径,找个地方保存一下,后面会用到
165:/usr/local/python3.7.0/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
186: /usr/local/python3/lib/python3.7/site-packages/matplotlib/mpl-data/matplotlibrc
- 查看系统中的所有字体,以及可用的中文字体
import matplotlib.font_manager
a = sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])
for i in a: print(i) - 创建/usr/share/fonts/newfontsdir文件夹
- 下载微软雅黑,地址centos雅黑字体下载路径 ,下载之后解压,将解压之后的*.ttf文件传入/usr/share/fonts/newfontsdir
- 进入/usr/share/fonts/newfontsdir文件夹,输入以下命令
sudo mkfontscale(如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale )
sudo mkfontdir
fc-cache -fv (如果提示 fc-cache: command not found,则需要安装# yum install fontconfig ) - 输入命令:fc-list 命令查找一下刚才下载的中文字体的font-family.
- 修改matplotlibrc文件,vim 第1步获取的路径
-
cp /usr/share/fonts/newfontsdir/文泉驿等宽正黑.ttf 复制到第1步得到的路径去掉matplotlibrc,在/mpl-data/后面拼接fonts/ttf/
from matplotlib.font_manager import _rebuild _rebuild() import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties #引用中文字体 font = FontProperties(fname='/usr/local/python3.7.0/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/文泉驿等宽正黑.ttf') plt.figure(u'中文') plt.plot([1,2,3,4],[-2,-1,0,1]) plt.title(u'今天',fontproperties=font) plt.xlabel(u'明天',fontproperties=font) plt.ylabel(u'昨天',fontproperties=font) plt.savefig('1.png')
python 中文名:蟒蛇,设计者:Guido van Rossum