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使用open打开文件中文乱码的问题
Dec 29 Python
Python实现获取邮箱内容并解析的方法示例
Jun 16 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
Python从使用线程到使用async/await的深入讲解
Sep 16 Python
pycharm 解除默认unittest模式的方法
Nov 30 Python
详解用python自制微信机器人,定时发送天气预报
Mar 25 Python
对python 调用类属性的方法详解
Jul 02 Python
使用Python做垃圾分类的原理及实例代码附源码
Jul 02 Python
python实现图片上添加图片
Nov 26 Python
django自带的权限管理Permission用法说明
May 13 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
Python实现JS解密并爬取某音漫客网站
Oct 23 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设计模式中单例模式的应用分析
2013/05/15 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
PHP中使用BigMap实例
2015/03/30 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
JQUBAR1.1 jQuery 柱状图插件发布
2010/11/28 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
标题过长使用javascript按字节截取字符串
2014/04/24 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
Node.js DES加密的简单实现
2016/07/07 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
javascript 作用于作用域链的详解
2017/09/27 Javascript
详解webpack 热更新优化
2018/09/13 Javascript
Vue2.0使用嵌套路由实现页面内容切换/公用一级菜单控制页面内容切换(推荐)
2019/05/08 Javascript
D3.js(v3)+react 实现带坐标与比例尺的柱形图 (V3版本)
2019/05/09 Javascript
使用webpack搭建vue环境的教程详解
2019/12/31 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
解决vue 给window添加和移除resize事件遇到的坑
2020/07/21 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
解析Python中的异常处理
2015/04/28 Python
Python数据结构之单链表详解
2017/09/12 Python
pytorch:实现简单的GAN示例(MNIST数据集)
2020/01/10 Python
python代码能做成软件吗
2020/07/24 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
计算机专业自我鉴定
2013/10/15 职场文书
美德好少年事迹材料
2014/01/19 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
linux中nohup和后台运行进程查看及终止
2021/06/24 Python