python matplotlib中文显示参数设置解析
作者:Michael_翔_ 发布时间:2022-11-18 14:11:41
最近在学习python著名的绘图包matplotlib时发现,有时候图例等设置无法正常显示中文,于是就想把这个问题解决了。
PS:本文仅针对Windows,其他平台仅供参考。
原因
大致就是matplotlib库中没有中文字体。
我安装的anaconda,这是对应的matplotlib的字体所在文件夹(怎么找到matplotlib配置文件夹所在,下面解决方案会叙述,easyman~)。
C:\Anaconda64\Lib\site-packages\matplotlib\mpl-data\fonts\ttf
解决方案
现在整理一下我认为比较好的解决方案:
每次编写代码时进行参数设置
#coding:utf-8
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
#有中文出现的情况,需要u'内容'
一劳永逸(推荐)
import matplotlib
matplotlib.matplotlib_fname() #将会获得matplotlib包所在文件夹
然后进入C:\Anaconda64\Lib\site-packages\matplotlib\mpl-data该文件夹下就能看到matplotlibrc配置文件。
1)打开该配置文件,找到下面这行:
#font.serif : Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
然后,将前面的注释去掉!
2)找中文字体放到matplotlib字体库中。
在Windows文件夹下:C:\Windows\Fonts\MicrosoftYaHeiUI复制该字体,然后粘贴到C:\Anaconda64\Lib\site-packages\matplotlib\mpl-data\fonts\ttf文件夹,并给它重命名为Vera.ttf。
注明:这一步的作用其实就是将matplotlib中一个默认的字体替换为我们复制过来的中文字体,将这个中文字体命名改为matplotlib中有的字体名。
其实,还有其他方案,但是貌似在我这儿没成功。
补充
坐标轴的负号正常显示
#去掉了注释符号,同时,改为False
axes.unicode_minus : False
举例
#coding:utf-8
import matplotlib.pyplot as plt
plt.plot((1,2,3),(4,3,-1))
plt.xlabel(u'横坐标')
plt.ylabel(u'纵坐标')
plt.show()
总结
Python通过matplotlib画双层饼图及环形图简单示例
用matplotlib画等高线图详解
Python实战小程序利用matplotlib模块画图代码分享
如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
来源:https://segmentfault.com/a/1190000005144275
猜你喜欢
- 一、图图:数据(张量Tenrsor)+ 操作(节点Operation) (静态)图可以用:1、默认图;2、自定义图。1、默认图查看默认图的方
- python实现两个文本合并employee文件中记录了工号和姓名cat employee.txt:100 Jason Smith200 J
- 阅读上一篇教程:WEB2.0网页制作标准教程(10)自适应高度布局初步搭建起来,我开始填充里面的内容。首先是定义logo图片:样式表:#lo
- 1.__new__(cls, *args, **kwargs) 创建对象时调用,返回当前对象的一个实例;注意:这里的第一个参数是
- IDA插件是经过编译的、功能更强大的IDC脚本,与仅仅使用脚本相比,插件能够执行更加复杂的任务。与编写IDC脚本相比,python显得更为轻
- 环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2
- 前言在开始本文之前,先来介绍一下相关内容,大家都知道一些防护SSRF漏洞的代码一般使用正则来判断访问IP是否为内部IP,比如下面这段网上比较
- Q:在给Dataloader设置worker数量(num_worker)时,到底设置多少合适?这个worker到底怎么工作的?
- 背景: 由于工作需要,现在有这么一个需求,要合并大量的word文档,而且要在不同的目录
- 前言上篇介绍了go-grpc-middleware的grpc_zap、grpc_auth和grpc_recovery使用,本篇将介绍grpc
- 将json转为结构体时,经常会遇到无法确定某个字段类型的情况。在Go中可以使用interface 任意类型来解决。// convert js
- 对于中小型个人、企业网站来说,MySQL数据库或许是目前数据库的最完美实施解决方案了。在不变更服务器硬件的前提下,一个经过良好架构,优化后的
- python语句mode = ‘test’ if y is None else &lsquo
- 之前给大家介绍过python高手之路python处理excel文件(方法汇总) Python操作Excel之xlsx文件&nbs
- 一、router-link路由导航方式传参父组件:<router-link to="/跳转到的路径/传入的参数"&
- Jupyter Notebook内使用argparse报错在github上下载了代码来学习时,发现将其直接copy到jupyter note
- 本文实例为大家分享了python实现五子棋游戏的具体代码,供大家参考,具体内容如下话不多说,直接上代码:全部工程文件,在GitHub:五子棋
- 这个是用vue-cli生成的项目下使用比如有个路由跳转时需要带两个参数:<router-link to='/tr'&g
- 此次遇到的问题是在import pycurl 时报错pycurl:libcurl link-time version is older th
- <?php //包含一个计数器,一个提醒语句,用户ip以及自己的广告图片。 //给浏览器发送头,说我是张图片 Header