2024 解决matplotlib中文字体问题

第一种代码(失败代码)

import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontPropertiesfont_path = '/Users/huangbaixi/Desktop/SimHei.ttf'def plot_demo():#print(mpl.get_cachedir())# 绘制折线图font_prop = FontProperties(fname=font_path)plt.rcParams['font.sans-serif'] = [font_prop.get_name()]plt.rcParams['axes.unicode_minus'] = Falseyear = [2017, 2018, 2019, 2020]people = [20, 40, 60, 70]# 生成图表plt.plot(year, people)plt.xlabel('年份')plt.ylabel('人口')plt.title('人口增长')# 设置纵坐标刻度plt.yticks([0, 20, 40, 60, 80])# 设置填充选项:参数分别对应横坐标,纵坐标,纵坐标填充起始值,填充颜色plt.fill_between(year, people, 20, color='green')# 显示图表# plt.savefig("./plt.png")plt.show()

这一版代码会出现

findfont: Generic family ‘sans-serif’ not found because none of the following families were found: SimHei

查询发现:
在这里插入图片描述

rcParams 有概率失败

第二种方法(指定应用)

import matplotlib as mpl
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontPropertiesfont_path = '/Users/huangbaixi/Desktop/SimHei.ttf'
font_prop = FontProperties(fname=font_path)def plot_demo():year = [2017, 2018, 2019, 2020]people = [20, 40, 60, 70]plt.plot(year, people)plt.xlabel('年份', fontproperties=font_prop)plt.ylabel('人口', fontproperties=font_prop)plt.title('人口增长', fontproperties=font_prop)plt.yticks([0, 20, 40, 60, 80])plt.fill_between(year, people, 20, color='green')plt.show()plot_demo()

这是成功的。
在这里插入图片描述

第三种方法(全局应用)

import matplotlib
# font_path = '/usr/share/fonts/SimHei.ttf'
font_path = '/Users/huangbaixi/Desktop/SimHei.ttf'
# 添加字体路径
matplotlib.font_manager.fontManager.addfont(font_path)# 设置 matplotlib 的全局参数
matplotlib.rcParams['font.family'] = 'sans-serif'
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 使用 SimHei 字体
matplotlib.rcParams['axes.unicode_minus'] = False  # 正常显示负号# 定义绘图函数
def plot_demo():year = [2017, 2018, 2019, 2020]people = [20, 40, 60, 70]plt.plot(year, people)plt.xlabel('年份')plt.ylabel('人口')plt.title('人口增长')plt.yticks([0, 20, 40, 60, 80])plt.fill_between(year, people, 20, color='green')plt.show()

这也是可以的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624504.shtml

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

相关文章

操作系统导论-课后作业-ch5

关于man的使用 man 系统参考手册 man n name 在系统手册第n章查看name1. 代码&#xff1a; #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <sys/wait.h>int main() {int x 100;int rc fork();if (rc -1) {fprintf…

16位单片机单片机S1C17153

16位单片机单片机 .16KB ROM / 2KB内存 * S1C17653对于程序开发很有用。 .产生具有内置振荡器的操作时钟。 - OSC3B振荡器电路&#xff1a;2MHz/1MHz/500kHz&#xff08;类型&#xff09;内部振荡器电路 -OSC1无振荡器电路&#xff1a;32.768 kHz&#xff08;类型&#xf…

SSL证书与HTTPS的关系

SSL证书是一种数字证书&#xff0c;由权威的证书颁发机构颁发。它包含了一个公钥和有关证书所有者的一些信息&#xff0c;如名称、组织、邮箱等。SSL证书的主要作用是实现数据加密和身份验证&#xff0c;确保数据在传输过程中的安全性和完整性。 HTTPS是一种基于HTTP协议的安全…

༺༽༾ཊ—游戏-01_2D-开发—ཏ༿༼༻

首先利用安装好的Unity Hub创建一个unity 2D&#xff08;URP渲染管线&#xff09;项目 选择个人喜欢的操作格局&#xff08;这里采用2 by 3&#xff09; 在Project项目管理中将双栏改为单栏模式&#xff08;个人喜好&#xff09; 找到首选项&#xff08;Preferences&#xff09…

Django教程第4章 | Web开发实战-三种验证码实现

系列&#xff1a;Django学习教程 验证码的存在是为了防止系统被暴力破解攻击&#xff0c;几乎每个系统都有验证码。下面将介绍三种生成验证码方式。 您可以根据你自己的需要进行学习。 手动生成验证码 安装绘图依赖&#xff0c;利用的是画图模块 PIL 以及随机模块 random 在后…

鸿蒙开发-UI-布局-线性布局

鸿蒙开发-序言 鸿蒙开发-工具 鸿蒙开发-初体验 鸿蒙开发-运行机制 鸿蒙开发-运行机制-Stage模型 鸿蒙开发-UI 鸿蒙开发-UI-组件 鸿蒙开发-UI-组件-状态管理 鸿蒙开发-UI-应用-状态管理 鸿蒙开发-UI-渲染控制 鸿蒙开发-UI-布局 文章目录 前言 一、基本概念 二、布局子元素 1.子元…

User-Agent(用户代理)是什么?

User-Agent&#xff08;用户代理&#xff09;是什么&#xff1f; User-Agent 即用户代理&#xff0c;简称“UA”&#xff0c;它是一个特殊字符串头。网站服务器通过识别 “UA”来确定用户所使用的操作系统版本、CPU 类型、浏览器版本等信息。而网站服务器则通过判断 UA 来给客…

Hotspot源码解析-第十九章-ClassLoaderData、符号表、字符串表的初始化

第十九章-ClassLoaderData初始化 讲解本章先从一张图开始 众所周知&#xff0c;Java类的相关信息都是存储在元空间中的&#xff0c;但是是怎么存储的&#xff0c;相信很多读者是不清楚的&#xff0c;这里就不得不涉及到ClassLoaderDataGraph、classLoader、classLoaderData&…

MIT 6s081 lab 5: xv6 lazy page allocation

Page faults Basic 通过page fault可以实现一系列的虚拟内存功能&#xff1a; lazy allocationcopy-on-write forkdemand pagingmemory mapped files 虚拟内存的两个主要的优点&#xff1a; 1、隔离性&#xff1a;每个应用程序拥有自己的地址空间&#xff0c;因此不可能修…

【Dart】=> [06] Dart初体验-类Class-构造函数-继承-mixin-异步编程-链式调用-泛型-异常

目录 能够定义并使用Dart的类类的定义构造函数私有属性和方法继承mixin异步编程FutureFuture链式调用async - awaitdynamic类型泛型异常 能够定义并使用Dart的类 Dart是一门面向对象的编程语言&#xff0c;所有的对象都是类的实例 通过类我们可以对数据和方法进行封装复用 学习…

(2023版)斯坦福CS231n学习笔记:DL与CV教程 (1) | 引言与知识基础

前言 &#x1f4da; 笔记专栏&#xff1a;斯坦福CS231N&#xff1a;面向视觉识别的卷积神经网络&#xff08;23&#xff09;&#x1f517; 课程链接&#xff1a;https://www.bilibili.com/video/BV1xV411R7i5&#x1f4bb; CS231n: 深度学习计算机视觉&#xff08;2017&#xf…

NLP论文阅读记录 - 2022 | WOS 用于摘要法律文本的有效深度学习方法

文章目录 前言0、论文摘要一、Introduction1.1目标问题 二.相关工作三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结 前言 Effective deep learning approaches for summarization of legal texts&#xff08;22&#x…

Linux -- Nginx服务基础

4.1Nginx服务基础 Nginx(发音为[engine x])专为性能优化而开发&#xff0c;其最知名的优点是它的稳定性和低系统资源消 耗&#xff0c;以及对HTTP并发连接的高处理能力&#xff08;单台物理服务器可支持30000~50000个并发请求&#xff09;&#xff0c;正因 为如此&#xff0c;…

vscode中关于python的一些常用配置

文章目录 python cv2 提示配置第一步 配置提示信息第二部 重启vs 可能还不行&#xff0c;那就重新安装以下opencv-python 配置pytest还是如上&#xff0c;将下入的位置打开编写测试用例 配置跨文件import在工作目录中新建一个.env文件输入内容如下打开.vscode中的setting.json …

目标识别跟踪模块Tofu3

Tofu系列提供了适应不同目标、不同速率的识别跟踪模块产品系列&#xff0c;主要包括Tofu3&#xff0c;4&#xff0c;5&#xff0c;S和其他零配件&#xff0c;可以适配BT.656,Cameralink&#xff0c;网络等不同接口和协议的热红外、可见光视频。 Tofu3 是多波段视频物体识别跟踪…

GL Logger和CANFDLog-OTL-128两款记录仪都是如何实现高效的报文录制的?

GL Logger是Vector推出的记录CAN/CAN FD、LIN、FlexRay和MOST数据通信的工具。以GL2400为例带着大家一步步地实现路试过程中通过整车OBD口进行CAN/CANFD报文的录制。 Step1 设备配置 设备配置即设备录制方式、录制内容、设备休眠唤醒策略等。 ▷ 打开Vector Logger Configurat…

UML-用例图

提示&#xff1a;用例图是软件建模的开始&#xff0c;软件建模中的其他图形都将以用例图为依据。用例图列举了系统所需要实现的所有功能&#xff0c;除了用于软件开发的需求分析阶段&#xff0c;也可用于软件的系统测试阶段。 UML-用例图 一、用例图的基础知识1.用例图的构成元…

使用numpy处理图片——滤镜

大纲 3维数组切分打平重组法深度切分法 3维数组堆叠 我们在用手机拍照片时&#xff0c;往往会对照片进行滤镜处理&#xff0c;从而让照片更加美观。本文我们将实现几种滤镜效果——去除所有像素中的某一种原色&#xff0c;形成只有红绿、红蓝和绿蓝原色的照片。 为了突出色彩丰…

定制服务器有什么优势优点?

定制服务器是指在根据用户的需求和业务特点&#xff0c;专门设计和制造的服务器。与标准服务器相比&#xff0c;定制服务器具有以下优势和优点&#xff1a; 更好的性能&#xff1a;定制服务器可以针对特定应用进行优化&#xff0c;从而提高服务器的性能。由于定制服务器不需要…

Win和Mac系统重置系统方法

注意&#xff1a;重置系统前&#xff0c;请备份好系统盘资料到其他盘符&#xff01;重置系统将会删除应用和系统设置&#xff0c;甚至用户文件&#xff0c;还原为出厂设置模式。 Windows重置系统操作方法。&#xff08;目前支持WIN8&#xff0c;WIN10&#xff0c;WIN11&#x…