Python在Matplotlib图中显示中文字体的操作方法


Posted in Python onJuly 29, 2019

1.    说明

本篇主要针对在Ubuntu系统中,matplotlib显示不了中文的问题,尤其是在无法安装系统字体的情况下,解决Python绘图时中文显示的问题。

2.    在系统中安装字体

$ fc-list :lang=zh # 查看中文字体名称及其安装路径,相对于英文字体,中文字体文件一般较大。

如果无中文字体,可使用apt-get安装,具体方法如下:

$ apt-cache search font|grep Chinese # 查看可安装的中文字体
$ sudo apt-get install fonts-wqy-zenhei # 安装字体, 一般字体会被安装到/usr/share/fonts/的某个子目录下,也可以从windows中把ttf,ttc复制到fonts目录下。
$ cd /usr/share/fonts/truetype/xxx/ # cd到字体安装目录下
$ sudo mkfontscale
$ sudo mkfontdir
$ fc-cache -v # 更新字体
$ fc-list :lang=zh # 此时就可以看到新装的字体

3.    在Python中指定字体

此时python就可以使用新安装的字体了,方法是在Python中设置默认字体.

plt.rcParams['font.sans-serif'] = ['Droid Sans Japanese']

用以下方法可列出Python可用的系统字体名称及路径。

from os import path
from matplotlib.font_manager import fontManager
for i in fontManager.ttflist:
print(i.fname, i.name)

4.    在程序中指定字体文件

如果由于权限的限制,无法安装系统字体,也可以在程序中直接指定程序路径load字体,具体方法如下:

zhfont = mpl.font_manager.FontProperties(fname='../../font/wqy-zenhei.ttc')
plt.xlabel(u'测试一下 ', fontsize=20, fontproperties=zhfont)

注意:用docker+notebook写程序时,需要把字体存放在有权访问的路径之下。

5.    为Python安装新字体

把字体复制到 /usr/local/lib/python3.6/site-packages/matplotlib/mpl-data/fonts/ttf/目录下,然后删除 /root/.cache/matplotlib/,就可以使用新的字体了。

总结

以上所述是小编给大家介绍的Python在Matplotlib图中显示中文字体的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python实现linux下使用xcopy的方法
Jun 28 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
Sep 30 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
python+opencv实现动态物体识别
Jan 09 Python
python3.6利用pyinstall打包py为exe的操作实例
Oct 31 Python
Python设计模式之简单工厂模式实例详解
Jan 22 Python
Python实现随机取一个矩阵数组的某几行
Nov 26 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Python实现使用dir获取类的方法列表
Dec 24 Python
Python virtualenv虚拟环境实现过程解析
Apr 18 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
如何使用python写截屏小工具
Sep 29 Python
Django框架创建mysql连接与使用示例
Jul 29 #Python
python使用minimax算法实现五子棋
Jul 29 #Python
浅析python 中大括号中括号小括号的区分
Jul 29 #Python
Django分页功能的实现代码详解
Jul 29 #Python
微信小程序python用户认证的实现
Jul 29 #Python
Python 堆叠柱状图绘制方法
Jul 29 #Python
Django处理Ajax发送的Get请求代码详解
Jul 29 #Python
You might like
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
详解PHP中的外观模式facade pattern
2018/02/05 PHP
为jquery.ui.dialog 增加“自动记住关闭时的位置”的功能
2009/11/24 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
JS与jQ读取xml文件的方法
2015/12/08 Javascript
初识angular框架后的所思所想
2016/02/19 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
关于Iframe父页面与子页面之间的相互调用
2016/11/22 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
正则验证小数点后面只能有两位数的方法
2017/02/28 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
react.js组件实现拖拽复制和可排序的示例代码
2018/08/20 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
call在Python中改进数列的实例讲解
2020/12/09 Python
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
教师校本培训方案
2014/02/26 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
委托代理人授权委托书范本
2014/09/24 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
学校通报表扬范文
2015/05/04 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
公开致歉信
2019/06/24 职场文书
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
MySQL中连接查询和子查询的问题
2021/09/04 MySQL