python matplotlib中文显示参数设置解析


Posted in Python onDecember 15, 2017

最近在学习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中文显示参数设置解析

总结

以上就是本文关于python matplotlib中文显示参数设置解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

Python 相关文章推荐
Python学习笔记之常用函数及说明
May 23 Python
Python各类图像库的图片读写方式总结(推荐)
Feb 23 Python
python微信跳一跳系列之棋子定位像素遍历
Feb 26 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
通过Pandas读取大文件的实例
Jun 07 Python
python实现验证码识别功能
Jun 07 Python
python 分离文件名和路径以及分离文件名和后缀的方法
Oct 21 Python
Python面向对象进阶学习
May 21 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 Python
Python Sympy计算梯度、散度和旋度的实例
Dec 06 Python
python实现简单的tcp 文件下载
Sep 16 Python
MAC中PyCharm设置python3解释器
Dec 15 #Python
Python通过matplotlib画双层饼图及环形图简单示例
Dec 15 #Python
python绘制双柱形图代码实例
Dec 14 #Python
Python实现一个Git日志统计分析的小工具
Dec 14 #Python
用matplotlib画等高线图详解
Dec 14 #Python
Python数据结构与算法之图的广度优先与深度优先搜索算法示例
Dec 14 #Python
python实现发送邮件功能代码
Dec 14 #Python
You might like
PHP伪造来源HTTP_REFERER的方法实例详解
2015/07/06 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
laravel框架语言包拓展实现方法分析
2019/11/22 PHP
js 与或运算符 || && 妙用
2009/12/09 Javascript
Extjs在exlipse中设置自动提示的方法
2010/04/07 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
JavaScript操作XML/HTML比较常用的对象属性集锦
2015/10/30 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
清除输入框内的空格
2016/12/21 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
angular过滤器实现排序功能
2017/06/27 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
JavaScript实现手机号码 3-4-4格式并控制新增和删除时光标的位置
2020/06/02 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
Python根据区号生成手机号码的方法
2015/07/08 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
Zooplus葡萄牙:欧洲领先的网上宠物商店
2018/07/01 全球购物
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
计划生育证明格式范本
2014/09/12 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
停车位租赁协议书
2014/09/24 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
生日宴会祝酒词
2015/08/10 职场文书
信息技术研修心得体会
2016/01/08 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
python实现高效的遗传算法
2021/04/07 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
windows11怎么查看自己安装的版本号? win11版本号的查看方法
2021/11/21 数码科技