macOS中解决matplotlib中文乱码

news2024/10/7 19:18:54

现象

图表上中文变方框,日志中报错如下:

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

解决办法

下载字体

http://xiazaiziti.com/210356.html

查询字体保存路径

查看配置文件路径

import matplotlib    
print(matplotlib.matplotlib_fname())

在这里插入图片描述
这里我们得到的路径是:

/opt/homebrew/lib/python3.11/site-packages/matplotlib/mpl-data/matplotlibrc

去掉/matplotlibrc ,拼上/fonts/ttf。我们得到最终字体文件保存路径为:

/opt/homebrew/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf

我们把上面下载的文件保存到些目录,并保证文件名为SimHei.ttf
在这里插入图片描述

修改配置文件matplotlibrc

/opt/homebrew/lib/python3.11/site-packages/matplotlib/mpl-data/matplotlibrc

修改我们上一步得到的配置文件。
修改内容如下:

#去掉前面的#
font.family:  sans-serif
#去掉前面的#,手动加SimHei
font.sans-serif: SimHei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
#去掉前面的#,把True改为False
axes.unicode_minus: False  # use Unicode for the minus symbol rather than hyphen.  See
                           # https://en.wikipedia.org/wiki/Plus_and_minus_signs#Character_codes

这时重新运行python程序,应该已经解决了中文乱码的问题了。如果还没有解决可能需要清空缓存。

清空缓存

执行下面代码可看到缓存路径:

import matplotlib
print(matplotlib.get_cachedir())

代码执行结果如下:

>>> import matplotlib
>>> print(matplotlib.get_cachedir())
/Users/itkey/.matplotlib

我们把这个目录删除就可以了。

rm -rf /Users/itkey/.matplotlib

至此中文可以正常显示了。

在这里插入图片描述

参考

https://blog.csdn.net/u012744245/article/details/119735461

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

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

相关文章

01- 数据类型(C语言)

一 变量和常量 1.1 标识符 1、在我们所写的“第一个C程序”中出现了很多的标识符,例如include、main、printf、return。标识符是⽤来标识变量、函数,或任何其他⽤户⾃定义项⽬的名称。 2、标识符的约束规范: 只能包含数字、字母和下划线不…

chatgpt赋能python:Python怎么删除列表

Python怎么删除列表 什么是Python列表? 在Python中,列表是一个可变的序列,它可以包含不同类型的数据。列表可以使用中括号 [] 来定义,每个元素之间用逗号分隔。列表中的元素可以通过其下标进行访问,下标从0开始。 P…

Skywalking基础使用

Skywalking基础使用 agent的使用Linux下Tomcat7和8中使用Spring Boot中使用RocketBot的使用 agent的使用 agent探针可以让我们不修改代码的情况下,对java应用上使用到的组件进行动态监控,获取运行数据发送到OAP上进行统计和存储。agent探针在java中是使…

C语言之数组初级(5-8)

目录 1. 一维数组的创建和初始化 2. 一维数组的使用 3. 一维数组在内存中的存储 4. 二维数组的创建和初始化 5. 二维数组的使用 6. 二维数组在内存中的存储 7. 数组越界 8. 数组作为函数参数 二维数组的画图讲解 例如现在我要找第二行第三列这个元素,下面是…

放大电路与频率特征(期末模电速成)

目录 1、放大电路基础 2、放大电路三种组态 3、放大电路分析(必考) 4、多级放大电路 5、差动放大电路 6、频率特征 1、放大电路基础 晶体管输出特性曲线中的线性区域是指 放大区 ,iC βiB NPN 型静态工作点过高,容易产生 饱…

Vue 中的表格操作

Vue 中的表格操作 在 Web 开发中,表格是非常常见的元素之一。在 Vue 中,我们可以使用一些组件和插件来实现表格的操作。在本文中,我们将介绍 Vue 中的表格操作的基本原理和用法,并给出一些实例代码来帮助读者更好地理解。 表格…

Scrapy爬取数据,使用Django+PyEcharts实现可视化大屏

项目介绍 使用Scrapy进行数据爬取,MySQL存储数据,Django写后端服务,PyEcharts制作可视化图表,效果如下。 项目下载地址:Scrapy爬取数据,并使用Django框架PyEcharts实现可视化大屏 发现每个模块都有详情页…

Django---------创建、运行

目录 1.安装django 2.pycharm(专业版)创建项目 3.默认项目的文件介绍 4.App的创建和说明 5. 启动运行django 1.确保app已注册[settings.py] 2. 编写URL和视图函数对应关系[url.py] 3.编写视图函数[views.py] 4.启动django项目 1.安装django pip…

C语言之函数栈帧的创建与销毁讲解(1)

在前期的学习中我们可能有很多困惑 例如:局部变量是怎么创建的 为什么局部变量的值是随机值 函数是怎么样传参的 传参的顺序是什么 形参和实参的关系是什么 函数调用是怎么做的 函数掉调用结束后怎么返回的 这篇博客我们来修炼自己的内功,掌握好这篇…

MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法

MySQl学习(MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法 第四篇_MySQL中常用的运算符及其用法运算符1. 算术运算符1.加法与减法运算符2.乘法与除法运算符3.求模(求余&#…

【Linux】在工作站或服务器上实现多个GUI图形界面同时进行操作,多个用户同时操作互不干扰

一、问题背景 因为我们团队有几个人需要做仿真,一个工作站不够用,经常是一个人操作的时候另一个人就眼巴巴等着。 我在想能不能实现一种方案,能使两个人一起操作仿真软件呢? 这种方案,目前网上比较流行是x11-forwar…

NLP——ELMO;BERT;Transformers

文章目录 ELMOELMO 简介ELMO 优点利用了多层的 hidden 表示ELMO 缺点 BERTBERT V.S. ELMO两种预训练任务Object1: Masked Language ModelObject2: Next sentence prediction 训练细节如何使用 BERTBERT 应用——垃圾邮件分类 Transformerself-attentionMulti-head AttentionTra…

chatgpt赋能python:Python中如何判断奇偶数

Python中如何判断奇偶数 当我们在Python中编写程序时,有时需要判断一个数是奇数还是偶数,因为根据不同的情况,我们需要对不同的数值进行不同的处理。那么在Python中,该如何判断一个数是奇数还是偶数呢? 判断奇偶数的…

【JavaEE进阶】mybatis

目录: 一、Mybatis是什么 三个映射关系如下图: 二、mybatis的使用(前置工作简单案例) 第一步:导入MAVEN依赖 第二步: 在spring项目当中新建数据源 第三步:新建一个实体类,是和…

Shell编程规范与变量使用

目录 一、Shell编程概述 1.Shell脚本的概念 2.Shell脚本的应用场景 3.Shell的作用 4.Linux系统中支持的shell 二、Shell编程规范 1.编写Shell脚本规范步骤 2.Shell脚本执行方法 (1)以绝对路径执行(需要赋予脚本文件执行权限&#xf…

stable diffusion webui 文生图(txt2img)api接口调用(使用C#)

唠嗑 本次将跟读者讲一下如何通过C#请求sd webui api 【txt2img】接口,如果读者觉得文章有用,请给【点个赞】吧,有问题可以评论区提问。 实战 1.配置api启用参数 启动webui时,需加上【–api】 命令以保证api接口可以被调用。如…

Shell脚本文本三剑客之awk编辑器

目录 一、sed编辑器简介 二、sed工作流程 三、sed命令 四、sed命令的使用 1.sed打印文件内容(p) (1)打印文件所有行 (2)打印文件指定行 2.sed增加、插入、替换行(a、i、c) …

Shell脚本之正则表达式详解

目录 一、正则表达式简介 二、正则表达式的组成 三、正则表达式分类 四、正则表达式字符用法 1.基础正则表达式常见元字符(支持grep、egrep、sed、awk) 2. 扩展正则表达式元字符(支持:egrep、grep -E、awk、sed -r&#xff…

C语言之数据在内存中的存储(2)

本章重点:浮点数在内存中的存储 浮点数:数学中的小数 eg.123.45 12.345*10^1 1.2345*10^2 1E10:1.0*10^10 整型家族的类型,表示范围:limits.h 浮点数:float.h 大家可以猜测一下打印的这四个数字…

Unity中动画系统的性能优化

降低骨骼数,减少面片数。 方法: 1.勾选Optimize Game Objects,以剔除骨骼节点对应的Transform节点 2.开启多线程渲染选项 主要影响的函数调用开销,可以在profiler中查看: Animators.Update MeshSkinning.Update C…