matplotlib的中文设置

Python3环境下的matplotlib默认不支持中文字体,其原因为:
(1)matplotlib的内置字体库中没有对应中文字体
(2)matplotlib的配置文件中默认的字体非中文字体
具体的解决方案包括如下步骤:

步骤一:查找matplotlib配置文件目录
matplotlib 从配置文件 matplotlibrc 中读取配置,字体相关内容也在其中。matplotlib 依次在多个位置寻找配置文件,具体路径见官方文档
一般可通过如下方式,查看当前采用的 matplotlibrc文件:

# 项目python3环境下
>>> import matplotlib
>>> matplotlib.matplotlib_fname()

博主环境下的返回值结果如下:在这里插入图片描述
步骤二:添加字体文件
查看 matplotlibrc 文件,可以看到其默认的font.familysans-serif,而该字体是从如下字体中依次选择:

font.sans-serif     :  DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

这些均为西文字体,并不支持中文。我们可以安装支持中文的.ttf 格式字体来使得matplotlib支持中文,如SimHei.ttf(windows下自带)。
matplotlib的字体库路径为matplotlibrc 文件所在文件夹的统计目录,即

matplotlib/mpl-data/fonts

将SimHei.ttf移动到该目录下。

步骤三:修改 matplotlibrc 配置文件
更改的主要有三处地方(注意将该三处地方的备注#放开)
(1)修改font.family

font.family         : sans-serif

(2)在font.sans-serif中置顶SimHei

font.sans-serif     : SimHei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

(3)将axes.unicode_minus改为False

axes.unicode_minus  : False

步骤四:清理字体缓存文件
可通过如下方式,查看 matplotlib字体缓存位置:

# 项目python3环境下
import matplotlib
matplotlib.get_configdir()

将该目录下的所有文件删除。

步骤五:重启项目或kernel,中文显示成功。

附:动态配置
以上方式通过修改matplotlib全局配置文件的方式设置了中文字体。在实际操作中,还经常采用动态配置为某个具体项目进行设置。比如这样:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']

当然,上述命令成功的前提是matplotlib字体库中有对应的ttf文件。

【参考资料】

  1. 我们来解决一下 matplotlib 的中文显示问题
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值