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.rhkb.cn/news/296459.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot全局异常处理

问题 当我们没有做任何的异常处理时,我们三层架构处理异常的方案: Mapper接口在操作数据库的时候出错了,此时异常会往上抛(谁调用Mapper就抛给谁),会抛给service。 service 中也存在异常了,会抛给controller。 而在…

Python基于深度学习的人脸识别项目源码+演示视频,利用OpenCV进行人脸检测与识别 preview

​ 一、原理介绍 该人脸识别实例是一个基于深度学习和计算机视觉技术的应用,主要利用OpenCV和Python作为开发工具。系统采用了一系列算法和技术,其中包括以下几个关键步骤: 图像预处理:首先,对输入图像进行预处理&am…

鸿蒙南向开发案例:【智能养花机】

样例简介 智能养花机通过感知花卉、盆栽等植宠生长环境的温度、湿度信息,适时为它们补充水分。在连接网络后,配合数字管家应用,用户可远程进行浇水操作。用户还可在应用中设定日程,有计划的按日、按周进行浇水。在日程中用户可添…

Servlet原理Servlet API

目录 一、Servlet运行原理 1.1、问题 1.2、Servlet的具体执行过程 1.3、Tomcat初始化流程小结 1.4、Tomcat处理请求流程 二、Servlet API详解 2.1、HttpServlet类 2.1.1、处理Get请求 2.2、HttpServletRequest类 2.3、HttpServletResponse类 2.3.1、设置状态码 ​2.…

二维码的生成、下载Java,并返回给前端展示

分析 将生成的二维码图片,以IO流的方式,通过response响应体直接返回给请求方。 第一、不需要落到我们的磁盘,操作在内存中完成,效率比较高。 第二、所有生成二维码的请求,都可以访问这里,前端直接拿img标…

【tools】Lokalise 可用于本地化各种类型的应用程序和网站

【tools】Lokalise 可用于本地化各种类型的应用程序和网站 1. Lokalise 基本功能2. Lokalise 可用于本地化各种类型的应用程序和网站,那部署的应用程序和网站运行再什么地方,数据存储再什么位置?https://app.lokalise.com/quick-start 1. Lokalise 基本功能 Lokalise 是一款…

RUST语言基本数据类型认识

1.RUST的基本数据类型参考: 2.使用RUST数据类型声明变量并赋值: let a:i81;//8位有符号整数let a1:u82;//8位无符号整数let b:i161;//16位有符号整数let b1:u162;//16位无符号整数let c:i321;//32位有符号整数let c1:u322;//32位无符号整数let d:i641;//64位有符号整数let d1:u…

Java零基础入门-java8新特性(上篇)

一、本期教学目标 java8有哪些新特性什么是函数式接口什么是Lambda表达式掌握Stream ApiStream和Collect集合区别Stream创建方式Stream操作三步骤 二、概述 上几期,我们是完整的学完了java异常类的学习及实战演示、以及学习了线程进程等基础概念,而这一…

VSCode调试C++

1、环境准备 1.1、g的安装与使用 1.1.1、安装 方式一:Xcode安装 苹果的开发集成工具是Xcode.app,其中包含一堆命令行工具。 在 App store 可以看到其大小有好几个G,有点大。 方式二:Command Line Tools 安装 Command Line Too…

算法知识点汇总

知识点 1. 求二进制中1的个数 int get_count(int x)//返回x的二进制有多少个1 int get_count(int x) {int res 0;while (x){res ;x - x & -x;}return res; }2. 建树,和树的DFS 记得初始化头节点 const int N 1e5 10, M N * 2; int h[N], e[M], ne[M], id…

【智能算法】猎豹优化器(CO)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2022年,MA Akbari等人受到自然界中猎豹捕猎行为启发,提出了猎豹优化器(The Cheetah Optimizer,CO)。 2.算法原理 2.1算法思想 CO法对猎…

Shell GPT:直接安装使用的chatgpt应用软件

ShellGPT是一款基于预训练生成式Transformer模型(如GPT系列)构建的智能Shell工具。它将先进的自然语言处理能力集成到Shell环境中,使用户能够使用接近日常对话的语言来操作和控制操作系统。 官网:GitHub - akl7777777/ShellGPT: *…

使用vuepress搭建个人的博客(一):基础构建

前言 vuepress是一个构建静态资源网站的库 地址:VuePress 一般来说,这个框架非常适合构建个人技术博客,你只需要把自己写好的markdown文档准备好,完成对应的配置就可以了 搭建 初始化和引入 创建文件夹press-blog npm初始化 npm init 引入包 npm install -D vuepress…

【C++】C++11类的新功能

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 目录 前言 默认成员函数 类成…

Windows下编译TinyXML(XML文件解析)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 TinyXML是什么? TinyXML是一个轻量级的C XML解析器,它提供了一种简单的方法来解析和操作XML文档。TinyXM…

Camtasia Studio2024汉化版下载(功能强大的屏幕录制和视频编辑软件)

Camtasia Studio 2024是一款功能强大的屏幕录制和视频编辑软件,由TechSmith公司开发。这款软件不仅能够帮助用户轻松地记录电脑屏幕上的任何操作,还可以将录制的视频进行专业的编辑和制作,最终输出高质量的视频教程、演示文稿、培训课程等。 …

Termius for Mac v8.4.0激活版下载

Termius for Mac是一款功能强大的多协议远程管理软件,专为开发人员、系统管理员和网络专业人士设计。它支持多种远程连接协议,如SSH、Telnet、RDP、VNC和RFB等,使得用户可以轻松连接到不同类型的远程服务器和设备。 软件下载:Term…

企业家升维认知:引领企业持续发展的关键

一、引言 在快速变化的时代背景下,企业家面临着前所未有的挑战与机遇。新东方教育科技集团董事长俞敏洪曾深刻指出:“企业家本身要不断升维自己的认知,才能带领企业持续发展。”这句话不仅揭示了企业家认知升维的重要性,也为我们…

高效准确!指甲剪盖片视觉检测技术解密

指甲剪的盖片是指指甲剪的一端,通常用来盖住另一端的刀刃部分。指甲剪盖片是指甲剪的重要部分,除了保护刀刃外,还起到美观和便捷的作用。正确使用和保养指甲剪盖片可以延长指甲剪的使用寿命。 本案是对指甲剪盖片最大尺寸长75mm*宽10mm*高3mm…

蓝桥杯算法题:区间移位

题目描述 数轴上有n个闭区间&#xff1a;D1,...,Dn。 其中区间Di用一对整数[ai, bi]来描述&#xff0c;满足ai < bi。 已知这些区间的长度之和至少有10000。 所以&#xff0c;通过适当的移动这些区间&#xff0c;你总可以使得他们的“并”覆盖[0, 10000]——也就是说[0, 100…