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 相关文章推荐
定制FileField中的上传文件名称实例
Aug 23 Python
使用python根据端口号关闭进程的方法
Nov 06 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
详解python中sort排序使用
Mar 23 Python
Python 编程速成(推荐)
Apr 15 Python
不到40行代码用Python实现一个简单的推荐系统
May 10 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
python-sys.stdout作为默认函数参数的实现
Feb 21 Python
python和js交互调用的方法
Jun 23 Python
PyCharm Community安装与配置的详细教程
Nov 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
德生PL990的分析评价
2021/03/02 无线电
简单介绍下 PHP5 中引入的 MYSQLI的用途
2007/03/19 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
Prototype 工具函数 学习
2009/07/23 Javascript
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
小程序实现上传视频功能
2020/08/18 Javascript
vue el-upload上传文件的示例代码
2020/12/21 Vue.js
python之import机制详解
2014/07/03 Python
Python yield 使用方法浅析
2017/05/20 Python
一篇文章弄懂Python中所有数组数据类型
2019/06/23 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
django admin后管定制-显示字段的实例
2020/03/11 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
thinkphp5 路由分发原理
2021/03/18 PHP
新党章心得体会
2014/09/04 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
2014年团工作总结
2014/11/27 职场文书
六年级学生期末评语
2014/12/26 职场文书
2015年教学管理工作总结
2015/05/20 职场文书
狂人日记读书笔记
2015/06/30 职场文书
中学语文教学反思
2016/02/16 职场文书
HTTP中的Content-type详解
2022/01/18 HTML / CSS
Python中文分词库jieba(结巴分词)详细使用介绍
2022/04/07 Python