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 相关文章推荐
JPype实现在python中调用JAVA的实例
Jul 19 Python
启动targetcli时遇到错误解决办法
Oct 26 Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 Python
Python安装模块的常见问题及解决方法
Feb 05 Python
python实现简单遗传算法
Mar 19 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
详解python数据结构和算法
Apr 18 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
python装饰器使用实例详解
Dec 14 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
Apr 08 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
Python rabbitMQ如何实现生产消费者模式
Aug 24 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
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
PHP Laravel中的Trait使用方法
2019/01/20 PHP
浅谈Laravel POST,PUT,PATCH 路由的区别
2019/10/15 PHP
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
JS获取图片高度宽度的方法分享
2015/04/17 Javascript
jquery zTree异步加载简单实例讲解
2016/02/25 Javascript
js老生常谈之this,constructor ,prototype全面解析
2016/04/05 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
JS实现的样式切换功能tableCSS实例
2016/12/30 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
vue-resource:jsonp请求百度搜索的接口示例
2019/11/09 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python通过opencv实现批量剪切图片
2017/11/13 Python
Django框架表单操作实例分析
2019/11/04 Python
python爬虫中抓取指数的实例讲解
2020/12/01 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
理肤泉加拿大官网:La Roche-Posay加拿大
2018/07/06 全球购物
SQL Server数据库笔试题和答案
2016/02/04 面试题
大学生职业生涯规划方案
2014/01/03 职场文书
销售主管岗位职责范本
2014/02/14 职场文书
公开服务承诺制度
2014/03/26 职场文书
安全保证书范文
2014/04/29 职场文书
森林病虫害防治方案
2014/06/02 职场文书
单位实习鉴定评语
2015/01/04 职场文书
费用申请报告范文
2015/05/15 职场文书