python的matplotlib库绘图不能正常显示中文
off999 2024-10-12 06:10 18 浏览 0 评论
问题描述:在python编程中,用matplotlib库画图的时候,坐标轴或标题中的中文显示为一些矩形框框,不能正常显示,如下图所示:
要解决这个问题,需要在matplotlib库的配置文件中进行一些设置。以下是常见的解决方法:
1. 在程序导入库之后添加设置字体的代码。
将pltrcParams['fontsans-serif']和pltrcParams['fontserif']中的字体改为系统自带的中文字体,例如SimHei和KaiTi。这种方法需要在新的编译环境上重新修改配置文件,虽然麻烦一点,但在代码中修改可以保持一致性。请注意,在设置中文字体时,必须确保系统中安装了相应的中文字体。
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['kaiti']
2 此外,还有一种终极法可以解决这个问题。这种方法最简单且一劳永逸,值得收藏。具体的方法是,通过导入FontProperties和字体文件路径,或者仅支持ttf格式的字体,来设置全局字体。请根据您的实际需求选择合适的解决方案。以下是具体的设置方法:
2.1. 修改matplotlib配置文件
打开matplotlib的配置文件,一般位于```pythonpath/site-packages/matplotlib/mpl-data/matplotlibrc```中,使用Notepad++等编辑器打开。在文件中找到```axes.unicode_minus```这一项,将其值由原来的True改为False,并将#号去掉。这一项控制负号是否被显示为方块。
2.2. 修改字体
找到pltrcParams['fontsans-serif']和pltrcParams['fontserif']这两项,将其值改为系统自带的中文字体。例如,如果是Windows系统,可以设置为```SimHei```和```KaiTi```。如果是Linux系统,可以设置为```font-family: "Hiragino Sans", "Hiragino Sans GB", "Microsoft YaHei", "Microsoft YaHei UI", "Microsoft JhengHei", "Microsoft JhengHei UI", "WenQuanYi Micro Hei", "WenQuanYi Micro Hei Light", "WenQuanYi Micro Hei Semilight", "WenQuanYi Micro Hei Regular", "WenQuanYi Micro Hei Medium"``。请注意,在设置中文字体时,必须确保系统中安装了相应的中文字体。
2.3. 设置全局字体
在matplotlib的根目录下,新建一个文件```matplotlib_setup.py```,并在其中添加以下代码:
import matplotlib as mpl
mpl.rcParams['font.family'] = ['SimHei']
这一步的目的是设置matplotlib的全局字体,确保所有的图像都能正确显示中文。请根据您的实际需求,在这一行代码中设置其它中文字体,或者导入FontProperties和字体文件路径,或者仅支持ttf格式的字体。
使用以上方法中的任意一种,都可以解决matplotlib中中文显示为矩形块的问题。请根据您的实际需求选择合适的解决方案。
相关推荐
- 用Python编制生成4位数字字母混合验证码
-
我们登录一些网站、APP的时候经常会有验证码,这个为了防止有人不停的去试探密码,还有发送短信验证之前,输入验证码就可以减少误点,错误操作等等。可以提高安全性,我们可以生成数字,也可以生成字母,也可...
- Python电子发票管理工具4:前后端业务逻辑实现
-
用一系列文章介绍如何用python写一个发票管理小工具。在前面的文章中前端页面和后端框架已经实现,本文将介绍功能实现的代码。数据库操作使用sqlalchemy操作sqlite数据库。sqlalchem...
- 【代码抠图】4行Python代码帮你消除图片背景
-
在修图工具满天飞的年代其实仍然还有很多人不会扣图(比如我),在很多需要去除某些照片上面的背景的时候就会很难受,所以今天就给不会扣图的小伙伴们来带一个简单的代码扣图教程,只需要4行代码,不用再多了。准备...
- Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
Python3.14重磅更新!UUIDv6/v7/v8强势来袭,别再用uuid4()啦!为什么说UUID升级是2025年Python开发者的必学技能?在当今互联网应用中,UU...
- 殊途同归 python 第 4 节:有趣的键值对(字典)
-
字典数据的突出特点就是“键”和“值”,前文已经简单介绍过,本文来聊聊关于字典的几个高级玩法。1.函数打包后,通过键来调用globalf1,f2a={"k1":f1,"k2...
- 更有效地使用 Python Pandas 的 4 个技巧
-
一个简单而实用的指南照片由simonsun在Unsplash上拍摄Pandas是一个用于数据分析和操作任务的非常实用且功能强大的库。自2019年以来,我一直在使用Pandas,它始终能够为我...
- 4.python学习笔记-集合(python里面集合)
-
1.关于集合集合是一类元素无序不重复的数据结构,常用场景是元素去重和集合运算。python可以使用大括号{}或者set()函数创建集合,如果创建一个空集合必须用set()而不是{},因为{}是用来表示...
- python生成4种UUID(python随机生成uuid)
-
总结了一份python生成4种UUID的代码:UUID用4种uuid生成方法:uuid1:基于时间戳由MAC地址、当前时间戳、随机数字。保证全球范围内的唯一性。但是由于MAC地址使用会带来安全问题...
- 你不知道的4种方法:python方法绘制扇形
-
1说明:=====1.1是问答中的我的一个回答。1.1因为问答中没有代码块的,所以我改为这里写文章,然后链接过去。1.24种方法:turtle法、OpenCV法、pygame法和matplot...
- 30天学会Python编程:4. Python运算符与表达式
-
4.1运算符概述4.1.1运算符分类Python运算符可分为以下几大类:4.1.2运算符优先级表4-1Python运算符优先级(从高到低)运算符描述示例**指数2**3→8~+-按位取...
- 这3个高级Python函数,不能再被你忽略了
-
全文共1657字,预计学习时长3分钟Python其实也可以带来很多乐趣。重新审视一些一开始并不被人们熟知的内置函数并没有想象中那么难,但为什么要这么做呢?今天,本文就来仔细分析3个在日常工作中或多或少...
- beautifulSoup4,一个超实用的python库
-
一.前言我们在学习python爬虫的时候,数据提取是一个常见的任务。我们一般使用正则表达式,lxml等提取我们需要的数据,今天我们介绍一个新的库beautifulSoup4,使用它您可以从HTML和...
- AI指导:打造第一个Python应用(4)(python ai开发)
-
眼瞅着迈过几个里程碑,与目标越来越近。尽管过程中照旧因返工而心焦,而欣喜与急躁比例,是喜悦运大于焦虑。从初次熟悉智能大模型,尝试编程起步,不定期进行复盘反思,这是小助手指导编程的第四篇。复盘以为记。需...
- wxPython 4.2.0终于发布了(wxpython安装教程)
-
wxPython是Python语言的跨平台GUI工具包。使用wxPython,软件开发人员可以为他们的Python应用程序创建真正的本地用户界面,这些应用程序在Windows、Ma...
- 《Python学习手册(第4版)》PDF开放下载,建议收藏
-
书籍简介如果你想动手编写高效、高质量并且很容易与其他语言和工具集成的代码,本书将快速地帮助你利用Python提高效率。本书基于Python专家的流程培训课程编写,内容通俗易懂。本书包含很多注释的例子和...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python字典遍历 (54)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (60)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)