matplotlib 设置绘图时显示中文

点击上方“超哥的杂货铺”,轻松关注

matplotlib绘图时,经常会遇到中文字体显示为方块的问题。网上有很多解决方案,比较普遍的是在代码里增加下面两行。

import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False

不过并不一定能解决问题。本文记录一下我在mac系统下解决这个问题的过程。

1.下载中文字体SimHei

搜索“SimHei.ttf”等相关关键字即可,如果找不到,后台回复“mpl中文”即可获取字体文件。

2.运行代码,查看matplotlib的字体文件夹

mpl.matplotlib_fname()

matplotlibrc是matplotlib的配置文件。字体文件夹在它同级目录下的fonts目录的子文件夹ttf中。即:

/Users/admin/opt/anaconda3/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf

3.将第一步获取的字体文件拷贝到第二步中的ttf文件夹中,可以使用cp命令或者打开文件夹拖拽。

4.修改配置文件matplotlibrc,涉及三处改动

  • 打开配置文件,搜索定位到#font.family : sans-serif,去掉行首的#

  • 打开配置文件,搜索定位到#font.serif:在冒号后面增加SimHei,

上面两步做完后效果如下图:

  • 打开配置文件,搜索定位到axes.unicode_minus,把默认的False改为True

修改好之后记得保存。

5.运行代码重新加载配置

from matplotlib.font_manager import _rebuild
_rebuild()#执行该函数加载字体配置

上面的代码会使以上的修改和配置生效。如果是在jupyter中,可能需要重启kernel或重启服务。

6.检查效果

可以看到,横纵坐标的中文标签已经正常显示了,并且此时不需要在代码中增加额外的设置代码,加载配置的代码也不需要每次都运行。如果没有生效,可以检查一下配置文件是否正确修改了。

以上步骤在Mac OS 下亲测有效,windows下的配置也大致相同,可以尝试一下。

以清净心看世界;

用欢喜心过生活。

超哥的杂货铺,你值得拥有~

长按二维码关注我们

推荐阅读

一图入门Matplotlib绘图

一个专业的“数据分析师”,应该具备哪些素质?

字节面试官教你如何准备面试(一)

字节面试官教你如何准备面试(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值