前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >matplotlib 设置绘图时显示中文

matplotlib 设置绘图时显示中文

作者头像
超哥的杂货铺
发布2020-07-28 15:12:48
1K0
发布2020-07-28 15:12:48
举报
文章被收录于专栏:超哥的杂货铺超哥的杂货铺

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

代码语言:javascript
复制
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False

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

1.下载中文字体SimHei

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

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

代码语言:javascript
复制
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.运行代码重新加载配置

代码语言:javascript
复制
from matplotlib.font_manager import _rebuild
_rebuild()#执行该函数加载字体配置

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

6.检查效果

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

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

以清净心看世界;

用欢喜心过生活。

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

长按二维码关注我们

推荐阅读

一图入门Matplotlib绘图

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 超哥的杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档