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 相关文章推荐
可用于监控 mysql Master Slave 状态的python代码
Feb 10 Python
使用Python内置的模块与函数进行不同进制的数的转换
Mar 12 Python
Python中对象迭代与反迭代的技巧总结
Sep 17 Python
Python实现的科学计算器功能示例
Aug 04 Python
Python基于列表模拟堆栈和队列功能示例
Jan 05 Python
浅谈Python traceback的优雅处理
Aug 31 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
Aug 06 Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
用Python开发app后端有优势吗
Jun 29 Python
python中的列表和元组区别分析
Dec 30 Python
Pandas-DataFrame知识点汇总
Mar 16 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
一个简洁的多级别论坛
2006/10/09 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
PHP实现简单汉字验证码
2015/07/28 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
JQuery Dialog的内存泄露问题解决方法
2010/06/18 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
THREE.JS入门教程(4)创建粒子系统
2013/01/24 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
2017/02/15 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
MUI 实现侧滑菜单及其主体部分上下滑动的方法
2018/01/25 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
使用kbone解决Vue项目同时支持小程序问题
2019/11/08 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
python进阶教程之模块(module)介绍
2014/08/30 Python
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
Django实现celery定时任务过程解析
2020/04/21 Python
心理健康日活动总结
2014/05/08 职场文书
连锁超市项目计划书
2014/09/15 职场文书
2014年员工工作总结范文
2014/11/18 职场文书
2015年试用期自我评价范文
2015/03/10 职场文书
2015年护理工作总结范文
2015/04/03 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
python控制台打印log输出重复的解决方法
2021/05/14 Python
Mysql数据库命令大全
2021/05/26 MySQL