matplotlib 设置绘图时显示中文

时间:2022-07-22
本文章向大家介绍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绘图

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

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

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