当前位置: 首页 > article >正文

环境搭建:使用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

最后测试成功
在这里插入图片描述


http://www.kler.cn/a/4988.html

相关文章:

  • JQuery——BreakingNews.js新闻滚动效果
  • 搜索与图论 - 搜索与图在算法中的应用【中】
  • [oeasy]python0120_英语的崛起_英文字符_小写字母的由来_不列颠帝国
  • vue-router路由守卫详解
  • android:手搓一个即时消息聊天框(包含消息记录)
  • 【新】(2023Q2模拟题JAVA)华为OD机试 - 机器人活动区域
  • Node.js的web框架koa2入门
  • 【ChatGPT】如何使用Qt设计SocketIO类型的WebSocket协议客户端
  • 分享:数据库存储与索引技术(三)LSM树实现案例
  • 区块链概论
  • python函数(上)
  • 【LeetCode刷题-Python】有序数组的平方
  • knife4j3.0.3整合gateway和注册中心
  • 【数据仓库-7】-- 使用维度建模的一些缘由
  • pandas基本应用记录
  • springboot集成xx-job;
  • Ubuntu系统安装基本Nginx和docker和一些其他的软件的基本操作
  • node-fs
  • Downie 4 4.6.12 MAC上最好的一款视频下载工具
  • Machine Learning-Ex2(吴恩达课后习题)About Logistic Regression