环境搭建:使用python matplotlib画图不显示中文问题解决

1.背景

python matplotlib.plt 使用 plt.title 写标题时,标题显示为方框,无法正常显示中文,而且基本上在一台新的服务器上配置python开发环境都会遇到这种问题,因此写个文章记录一下。
画图不显示中文的问题如下:

2.解决方案

引入以下代码配置

mpl.style.use('seaborn')
plt.rcParams['font.sans-serif'] = ['SimHei']  # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题
sns.set(font='SimHei',font_scale=1.5)  

如果添加后运行代码无 findfont: Font family [‘SimHei’] not found 报错且正常显示中文,那很奈斯,后面的就不用操作了,如果添加后显示如下报错则革命尚未成功,同志仍需努力:


findfont: Font family ['SimHei'] not found. Falling back to DejaVu Sans.
/Users/xxx/miniforge3/envs/macm1tf/lib/python3.8/site-packages/matplotlib/backends/backend_agg.py:240: RuntimeWarning: Glyph 23089 missing from current font.

上述报错代表 matplotlib 库内没有 SimHei 字体,所以需要下载相关文件,SimHei 就是最常见的黑体。

三.安装 SimHei.ttf 并配置 matplotlib

3.1 下载 SimHei.ttf

下载地址: SimHei.ttf 下载地址 ,进入界面下载对应文件即可,如果下载失败也可以留下邮箱,我看到就发一下

3.2 具体配置过程

拷贝 SimHei.ttf 到 matplotlib 的 font 文件夹

打开终端工作台,查看font 文件夹 路径

(base) w16059@wangshuangshuang059 ~ % python
Python 3.9.16 (main, Jan 11 2023, 10:02:19) 
[Clang 14.0.6 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more 
>>> import matplotlib
>>> matplotlib.matplotlib_fname()
'/Users/w16059/miniconda3/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc'
>>> 
KeyboardInterrupt

执行下述命令拷贝 SimHei.ttf 到 font 文件夹:

然后修改 Matplotlib 配置

打开配置文件

vi /Users/xxxx/miniforge3/envs/macm1tf/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc

  • 修改1 :去掉 font.family 前的 # 号 (256行附近)

  • 修改2:去掉 font.sans-serif 的 # 号,并加入 SimHei (260行附近)

  • 修改3:axes.unicode_minus 修改为 False (405行附近)

修改后 wq 即可,配置文件修改完毕。

最后清除 Matplotlib 缓存

rm -r /Users/xxx/.matplotlib

最后测试成功

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2023年6月16日
下一篇 2023年6月16日

相关推荐