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使用tkinter实现简单计算器
Jan 30 Python
Python实现加载及解析properties配置文件的方法
Mar 29 Python
python 删除指定时间间隔之前的文件实例
Apr 24 Python
钉钉群自定义机器人消息Python封装的实例
Feb 20 Python
Python闭包和装饰器用法实例详解
May 22 Python
Python csv文件的读写操作实例详解
Nov 19 Python
使用Pandas的Series方法绘制图像教程
Dec 04 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 Python
numpy的Fancy Indexing和array比较详解
Jun 11 Python
基于PyTorch中view的用法说明
Mar 03 Python
python manim实现排序算法动画示例
Aug 14 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 for 循环语句使用方法详细说明
2010/05/09 PHP
常用PHP封装分页工具类
2017/01/14 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
Thinkphp 3.2框架使用Redis的方法详解
2019/10/24 PHP
XRegExp 0.2: Now With Named Capture
2007/11/30 Javascript
ExtJS 2.0 实用简明教程之布局概述
2009/04/29 Javascript
jquery 查找iframe父级页面元素的实现代码
2011/08/28 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
JS正则表达式获取分组内容的方法详解
2013/11/15 Javascript
Jquery中基本选择器用法实例详解
2015/05/18 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
vue.js动态数据绑定学习笔记
2017/05/19 Javascript
js中less常用的方法小结
2017/08/09 Javascript
vue bus全局事件中心简单Demo详解
2018/02/26 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
解决layer弹出层自适应页面大小的问题
2019/09/16 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
[50:29]2014 DOTA2华西杯精英邀请赛 5 24 DK VS iG
2014/05/26 DOTA
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
Python实现简单的可逆加密程序实例
2015/03/05 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
利用Python计算KS的实例详解
2020/03/03 Python
Python操作MongoDb数据库流程详解
2020/03/05 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
德国咖啡批发商:Coffeefair
2019/08/26 全球购物
见习期自我鉴定
2013/11/07 职场文书
小学校长先进事迹材料
2014/05/13 职场文书
防邪知识进家庭活动方案
2014/08/26 职场文书
个人自我剖析材料
2014/09/30 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书