修改配置文件解决matplotlib中文与正负号乱码问题

news2024/12/24 11:29:18

步骤如下:

  • 1、 找到配置文件matplotlibrc
    不管是啥系统,都可以通过以下方式查找matplotlibrc所在的文件夹(可以在终端或者编译器中运行以下代码)
import matplotlib

# 查找字体路径
print(matplotlib.matplotlib_fname())

结果:
D:\Coding\Anaconda\lib\site-packages\matplotlib\mpl-data\matplotlibrc

使用文本编辑器打开matplotlibrc文件。

  • 2、修改配置文件
    使用Ctrl+F查找font.family所在位置,我的结果如下:
    在这里插入图片描述
    在下面的font.sans-serif后面加入想要的中文字体类型,比如我加的就是楷体KaiTi,我试了一下,如果在后面加入多个中文字体类型,会默认选择第一个的,所以根据自己的需求加就行。那么哪些字体是可以加进去的呢?
  • 3、查找可使用的字体类型并根据需求添加字体文件
    找到并打开.matplotlib文件夹,我的路径为C:\Users\14417\.matplotlib14417是我电脑的用户名。在.matplotlib中有一个名称为fontlist-v330.json的文件,里面有电脑中字体文件(后缀为.ttf)及其相对应的文字代码。使用文本编辑器打开,以KaiTi为例:
    在这里插入图片描述
    KaiTi对应的字体文件在"C:\\Windows\\Fonts\\simkai.ttf",其文字代码为KaiTiKaiTi即我们需要添加到font.sans-serif后面的。如果想用仿宋,先查找仿宋对应的字体文件及文字代码如下:
    在这里插入图片描述
    这里字体文件的路径与前面的不一样,是因为我修改了路径,这里就引出另一个问题:如果fontlist-v330.json里面没有我们想要的文件咋办?不难发现以上截图中的字典里面除了fnamename以外不同字体对应的字典中的其他键值对是一样的,因此只需要知道我们想要的字体的fnamename便可使用。fname为字体文件的路径,如果电脑有相关的字体文件则直接加上来即可,如前面的"C:\\Windows\\Fonts\\gadugib.ttf"。如果电脑没有的话,则先从网上下载相应的.ttf文件,然后放入matplotlibrc对应的字体文件夹中,我的为D:\Coding\Anaconda\Lib\site-packages\matplotlib\mpl-data\fonts\ttfmatplotlibrcD:\Coding\Anaconda\Lib\site-packages\matplotlib\mpl-data\里面,最后将fname设置为fonts\\ttf\\XX.ttf即可,name自己设置就行。
  • 4、修改配置文件解决正负号显示错误问题
    在配置文件matplotlibrc中找到unicode_minus并将其设置为False即可。
    在这里插入图片描述

记得一定一定要重启编译器,因为会有缓存,此时更改matplotlibrc的话直接运行代码还是没用的,重启之后就可以了。对于Linux系统啥的可以用print(matplotlib.get_cachedir())找到缓存文件所在的位置并删除即可。我的电脑上运行以上代码找到的缓存文件夹里并没有相关的缓存文件,重启编译器也可实现上述效果。

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

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

相关文章

策略模式Strategy

1.意图:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。此模式使得算法可以独立于使用它们的客户而变化。 2.结构 Strategy(策略)定义所有支持的算法的公共接口。Context使用这个接口来调用某Concre…

小梅哥FPGA时序分析和约束实例演练课程

P1 FPGA基本原理 基本结构 三要素可类比电路板的器件、连线、对外端子 可编程逻辑功能块 触发器用于实现时序逻辑,进位链用于可编程逻辑块间通讯,使用较少。 具体器件的可编程逻辑功能块结构。第5代将四输入查找表升级到六输入查找表 由上面两个图抽象…

Flink系列-3、Flink入门案例

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 大数据系列文章目录 官方网址:https://flink.apache.org/ 学习资料:https://flink-learning.org.cn/ 目录Flink程序模型…

Linux内核中sk_buff结构详解

目录 1.sk_buff结构体 1.1 sk_buff在内核中的结构 1.2 重要的长度len的解析 2. sk_buff数据区 2.1 线性数据区 2.2 非线性数据区 ---------------------------------------------------------------------------------------------------------------------------- 1.s…

内置常量--R

1. R中内置的常量 R中内置的常量有:1. LETTERS: 26个大写英文字母2. letters: 26个小写英文字母3. month.abb: 月份英文前三个字母组成的缩写4. month.name: 月份的英文名字5. pi : 圆周率π

TensorRT介绍及使用

1、简介 TensorRT是一个针对已训练好模型的SDK,通过该SDK能够在NVIDIA的设备上进行高性能的推理。优点如下: 总结下来主要有以下6点: Reduced Precision:将模型量化成INT8或者FP16的数据类型(在保证精度不变或略微降…

Linux学习笔记——Linux实用操作(三)

4.10、环境变量 学习目标: 理解环境变量的作用掌握符号$的作用掌握在Linux中配置环境变量 4.10.1、环境变量 1、在讲解which命令的时候,我们知道使用的一系列命令其实本质上就是一个个的可执行程序。 比如,cd命令的本体就是:…

股价狂跌超70%,特斯拉到底怎么了?

​在2022年的尾声,曾在新能源汽车领域盛极一时的特斯拉即将取得上市以来最糟糕的年度表现,直接跌出全球上公司市值前10名。目前特斯拉已连续第7个交易日下跌,截至2022年12月28日,跌超11%,创八个月最大跌幅,…

Leetcode 855. 考场就座

在考场里,一排有 N 个座位,分别编号为 0, 1, 2, ..., N-1 。当学生进入考场后,他必须坐在能够使他与离他最近的人之间的距离达到最大化的座位上。如果有多个这样的座位,他会坐在编号最小的座位上。(另外,如果考场里没有…

「回顾2022,展望2023」- 技术和兴趣,工作和生活,我们都在旅途中

技术 Java,云原生,前端 技术面好像变窄了 远离CI/CD,重新回到起点 2019年毕业,2018年9月份在距离学校(南昌)不远不近的公司实习开始实习,毕业后去过深圳、上海,最后是杭州,到现在,又…

OV7670图像传感器介绍

OV7670图像传感器简介 OV7670是图像传感器,其体积小、工作电压低,能提供单片VGA摄像头和影像处理器的所有功能。通过SCCB 总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影响数据。该产品VGA图像最高达到30帧/秒。用户可以完全…

西门子PLC串口协议与以太网通信协议对比

西门子plc品牌众多,通信协议的类型就更多了,具体可分为串口协议和以太网通信协议两大类。 串口协议主要有:MODBUS RTU 通信协议;PROFIBUS 通信协议;USS通信协议;PPI通信协议;MPI通信协议&#…

YGG:2022年年终回顾

2022 年,Yield Guild Games(YGG)扩大并发展了区块链游戏生态系统和开放的元宇宙。在这篇文章中,我们庆祝我们的公会成员、合作伙伴和社区所取得的里程碑式的成就,并期待接下来的发展。 游戏和基础设施合作伙伴的数量不…

推荐 6 个 GitHub 开源项目

本期推荐开源项目目录:1. B 站自动任务工具2. 学习 Solidity3. 高性能异步抖音爬取工具4. Java学习指南5. 中后台管理系统模版6. ChatGPT 中文调教指南01B 站自动任务工具BiliBiliTool 是一个自动化工具,它可以帮助你每天获取经验、每日签到、批量取关等…

分享几个嵌入式 C 中的实用技巧

1、动态绑定、回调函数 回调函数可以达到动态绑定的作用,在一定程度上可以降低层与层之间的耦合。关于回调函数,之前已经有写过一篇:C语言、嵌入式重点知识:回调函数。可能很多初学的小伙伴可能还不理解回调函数,可以…

【计算机图形学入门】笔记9:Shading3着色(插值、高级纹理映射)

09Shading3着色(插值、高级纹理映射)1.Barycentric Coordinates 重心坐标1.A点自己的重心坐标2.如何求出任意点的重心坐标?2.如何把纹理应用在实际的渲染中?Applying Textures3.Texture Magnification纹理放大。(解决纹…

Transform+ASM插桩系列(1)——熟悉Java字节码

前言 为什么要学习Java字节码呢,因为我们学的是插桩字节码技术,这块技术的根底就是字节码,要学会字节码的阅读和字节码的编写,虽然现在很多工具可以帮我们阅读和编写,但最根本的知识还是要理解的。万层楼高从地起&…

CTF之MISC题目-西游记

CTF系列文章 第一篇 CTF之密码学题目-classical && coding 第二篇 CTF之MISC题目-西游记 文章目录CTF系列文章前言一、题目是什么?二、解题步骤1.下载文件,解压2.暴力破解3.解压文件4.处理文本文件5.手动删除多余字符总结前言 CTF中关于MISC&a…

TensorFlow之回归模型-3

1 基本概念 回归模型 线性 线性模型 非线性模型 线性回归 逻辑回归 Log Loss(损失函数) 分类临界值 2 效率预测 如上所示,使用测试数据集进行评估、用图形显示逻辑回归的预测结果,其中,test_features是测试特…

hnu计网实验一-应用协议与数据包分析实验(使用Wireshark)

前言:这是个比较简单的实验,个人认为最难的不是分析部分,而是能否抓到一个好的包。为了抓到一个好的包我试了很多个网站,终于抓京东时抓到了令我个人最满意的包,因为没有其他各种杂乱的报文,就是那几条必要…