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  连接字符串(join %)
Sep 06 Python
python中将阿拉伯数字转换成中文的实现代码
May 19 Python
Python爬取三国演义的实现方法
Sep 12 Python
Python 递归函数详解及实例
Dec 27 Python
python2.7实现爬虫网页数据
May 25 Python
python实现文件的分割与合并
Aug 29 Python
基于Pycharm加载多个项目过程图解
Jan 19 Python
公认8个效率最高的爬虫框架
Jul 28 Python
Python定时任务APScheduler安装及使用解析
Aug 07 Python
pytorch实现手写数字图片识别
May 20 Python
python基础入门之字典和集合
Jun 13 Python
python实现简单石头剪刀布游戏
Oct 24 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/02/18 PHP
PHP APC配置文件2套和参数详解
2014/06/11 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
php判断当前操作系统类型
2015/10/28 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
2016/01/05 PHP
php依赖注入知识点详解
2019/09/23 PHP
angularJS提交表单(form)
2015/02/09 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
angularjs学习笔记之双向数据绑定
2015/09/26 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
AngularJS中run方法的巧妙运用
2017/01/04 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
jquery.onoff实现简单的开关按钮功能(推荐)
2018/05/24 jQuery
Vue 实现显示/隐藏层的思路(加全局点击事件)
2019/12/31 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
[01:07:20]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第二场 2月2日
2021/03/11 DOTA
python list语法学习(带例子)
2013/11/01 Python
python 多维切片之冒号和三个点的用法介绍
2018/04/19 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
CSS3 不定高宽垂直水平居中的几种方式
2020/03/26 HTML / CSS
空字符串(“”)和null的区别
2012/11/13 面试题
商务主管岗位职责
2013/12/08 职场文书
教师远程培训感言
2014/03/06 职场文书
倡议书的写法
2014/08/30 职场文书
纪念九一八事变演讲稿:忘记意味着背叛
2014/09/14 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
查摆问题整改措施
2014/10/24 职场文书
2015年销售部工作总结范文
2015/04/27 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
MySQL 角色(role)功能介绍
2021/04/24 MySQL