前言:
在windows上捣鼓python,用matplotlib画一些图,出现中文字体无法显示问题,找找资料,解决并记录下来
原文链接
Linux
-
下载中文字体(黑体,看准系统版本)
-
下载 arial unicode ms 字体到 /home 目录
-
拷贝字体到 usr/share/fonts 下:
sudo cp ~/arial\ unicode\ ms.ttf /usr/share/fonts/arial\ unicode\ ms.ttf
- 修改配置文件matplotlibrc 并且在~/.matplotlib/matplotlibrc也进行修改
- 在安装的地方找到虚拟环境ai/lib/python3.6/site-packages/matplotlib/mpl-data目录下面,修改下面配置
font.family : sans-serif
font.sans-serif : arial unicode ms, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
- 删除matplotlib字体缓存:
rm -rf ~/matplotlib/fontList.json
Windows
全局设置
# 设置matplotlib正常显示中文和负号
matplotlib.rcParams['font.sans-serif']=['SimHei'] # 用黑体显示中文
matplotlib.rcParams['axes.unicode_minus']=False # 正常显示负号
局部设置
from matplotlib.font_manager import FontProperties
font1 = FontProperties(fname=r"c:\windows\fonts\simsun.ttc")
font2 = FontProperties(fname=r"c:\windows\fonts\STHUPO.TTF")
font3 = FontProperties(fname=r"c:\windows\fonts\STCAIYUN.TTF")