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

Mac OS上使用matplotlib库显示中文字体

文章目录

    • 问题描述
    • 解决步骤
    • 参考文章

问题描述

如果我们想要使用matplotlib画图的话,可能会出现下面的这种warning:

UserWarning: Glyph 24212 (\N{CJK UNIFIED IDEOGRAPH-5E94}) missing from current font.

解决步骤

解决这个问题,可以按照下面的做法来实现:
1.首先找到matplotlib库字体在那里。

import matplotlib
print(matplotlib.matplotlib_fname())

例如我这里得到的地址就是

/Users/user_name/miniforge3/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc

我们就需要进入到matplotlibrc上一级目录即可

/Users/user_name/miniforge3/lib/python3.9/site-packages/matplotlib/mpl-data/

找到这里面的fonts文件夹。进入后,再进入到ttf文件夹
2. 在这个字体网址中找到你需要下载的字体。例如我这里需要下载宋体,就需要搜索SimSun,然后下载即可。至于,我们想找的字体的英文名字是什么,可以去这个字体名字上看。
3. 将下载好的SimSun.tff文件放在上面提到的/Users/user_name/miniforge3/lib/python3.9/site-packages/matplotlib/mpl-data/fonts/ttf文件夹中。就像下面这个样子
在这里插入图片描述
4. 然后修改下面这个文件路径的内容。这个路径就是你在步骤1中获得的地址(和我下面的这个不一样的)。为了保险起见,你可以先备份这个文件一份。

/Users/user_name/miniforge3/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc

需要修改的内容有:
a. 你搜索我下面图中箭头所指的关键词,然后加入你刚刚下载的字体名称。就像我下载的是SimSun.tff,所以在下面两处中加入的就是SimSun
在这里插入图片描述
b. 为了防止中文的 - 出现乱码,需要修改下面的内容。本来axes.unicode_mius: True,现在需要将其修改为False.
在这里插入图片描述
5. 然后输入下面的代码,刷新matplotlib的字体缓存

import shutil
import matplotlib
shutil.rmtree(matplotlib.get_cachedir())

执行完毕后,就可以使用matplotlib库来显示中文了。使用下面的代码就可以使用宋体了。

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimSun']

参考文章

中文字体的英文名称 (simhei, simsun) 宋体 微软雅黑
Mac OS系统下实现python matplotlib包绘图显示中文(亲测有效)
module ‘matplotlib.font_manager‘ has no attribute ‘_rebuild‘解决方法

http://www.lryc.cn/news/329420.html

相关文章:

  • IP种子是什么?理解和应用
  • 车载以太网AVB交换机 gptp透明时钟 5口 全千兆 SW1500
  • Can‘t connect to server on ‘localhost‘ (10061)
  • 虹科Pico汽车示波器 | 免拆诊断案例 | 2018款东风风神AX7车发动机怠速抖动、加速无力
  • zookeeper如何管理客户端与服务端之间的链接?(zookeeper sessions)
  • 【Java多线程】7——阻塞队列线程池
  • 同步复位和异步复位的优缺点
  • Code Review(代码审查)
  • 《拆解一切问题》如何成为解决难题的高手 - 三余书屋 3ysw.net
  • matlab——基于三维激光扫描点云的树冠体积计算方法
  • 如何在jupyter使用新建的虚拟环境以及改变jupyter启动文件路径。
  • Exception in thread “main“ com.fasterxml.jackson.databind.JsonMappingException:
  • 第三十九章 保护与 IRIS 的 Web 网关连接
  • java数据结构与算法刷题-----LeetCode127. 单词接龙
  • pytorch中的torch.nn.Linear
  • 03-MySQl数据库的-用户管理
  • 知乎:多云架构下大模型训练,如何保障存储稳定性?
  • JWFD流程图转换为矩阵数据库的过程说明
  • GT收发器第一篇_总体结构介绍
  • [图像处理] MFC载入图片并进行二值化处理和灰度处理及其效果显示
  • centos7.5 安装gitlab-ce (Omnibus)
  • 深入理解MapReduce:从Map到Reduce的工作原理解析
  • 初始Java篇(JavaSE基础语法)(5)(类和对象(上))
  • 机器人---人形机器人之技术方向
  • MySQL MHA高可用数据库
  • LVS(Layout versus schematic)比的是什么?
  • 从0开始搭建基于VUE的前端项目(三) Vuex的使用与配置
  • python统计分析——双样本均值比较
  • 三台电机的顺启逆停
  • 彩虹外链网盘界面UI美化版超级简洁好看