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实现优先级队列结构的方法详解
Jun 02 Python
Python 关于反射和类的特殊成员方法
Sep 14 Python
Python之csv文件从MySQL数据库导入导出的方法
Jun 21 Python
我用Python抓取了7000 多本电子书案例详解
Mar 25 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
使用python求解二次规划的问题
Feb 29 Python
python3 循环读取excel文件并写入json操作
Jul 14 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
Dec 04 Python
python如何发送带有附件、正文为HTML的邮件
Feb 27 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
Mar 03 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
Jun 09 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 23 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
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
php 无极分类(递归)实现代码
2010/01/05 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
2014/09/10 PHP
PHP微信开发之文本自动回复
2016/06/23 PHP
Laravel模型间关系设置分表的方法示例
2018/04/21 PHP
laravel框架分组控制器和分组路由实现方法示例
2020/01/25 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
2015/03/02 Javascript
深入浅析AngularJS中的module(模块)
2016/01/04 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
JS模仿腾讯图片站的图片翻页按钮效果完整实例
2016/06/21 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
十分钟带你快速了解React16新特性
2017/11/10 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
如何解决.vue文件url引用文件的问题
2019/01/18 Javascript
原生JS实现动态添加新元素、删除元素方法
2019/05/05 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
vue打包静态资源后显示空白及static文件路径报错的解决
2020/09/02 Javascript
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
Python装饰器decorator用法实例
2014/11/10 Python
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
python 实现按对象传值
2019/12/26 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
英国最大的独立玩具专卖店:The Entertainer
2019/09/06 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
毕业生如何写自我鉴定
2014/03/15 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
广告公司文案策划岗位职责
2015/04/14 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
青年志愿者活动感想
2015/08/07 职场文书