详解Python Matplot中文显示完美解决方案


Posted in Python onMarch 07, 2019

原因与现象

Matplot是一个功能强大的Python图表绘制库,很遗憾目前版本自带的字体库中并不支持中文字体。所以如果在绘制内容中需要显示中文,那么就会显示为方格字符。

解决办法

有一个较为完美的解决方案,通过扫描Matplot自带字体库以及系统字体库,寻找能够支持的中文字体,如果能够找到的话,就设置第一个为Matplot的字体熟悉。

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontManager
from pylab import mpl
import subprocess

def get_matplot_zh_font():
 fm = FontManager()
 mat_fonts = set(f.name for f in fm.ttflist)

 output = subprocess.check_output('fc-list :lang=zh -f "%{family}\n"', shell=True)
 zh_fonts = set(f.split(',', 1)[0] for f in output.split('\n'))
 available = list(mat_fonts & zh_fonts)

 print '*' * 10, '可用的字体', '*' * 10
 for f in available:
 print f
 return available

def set_matplot_zh_font():
 available = get_matplot_zh_font()
 if len(available) > 0:
 mpl.rcParams['font.sans-serif'] = [available[0]] # 指定默认字体
 mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

在绘图之前,调用set_matplot_zh_font()设置一下就可以了。

效果

如下图所示:

详解Python Matplot中文显示完美解决方案

以上所述是小编给大家介绍的Python Matplot中文显示完美解决方案详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python3基础之条件与循环控制实例解析
Aug 13 Python
Centos5.x下升级python到python2.7版本教程
Feb 14 Python
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
Mar 30 Python
在Python中使用next()方法操作文件的教程
May 24 Python
使用Python解析JSON数据的基本方法
Oct 15 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
May 23 Python
python实现手势识别的示例(入门)
Apr 15 Python
使用python实现名片管理系统
Jun 18 Python
python多线程和多进程关系详解
Dec 14 Python
python-jwt用户认证食用教学的实现方法
Jan 19 Python
python中time tzset()函数实例用法
Feb 18 Python
Python 键盘事件详解
Nov 11 Python
详解Python安装tesserocr遇到的各种问题及解决办法
Mar 07 #Python
Python3实现的判断环形链表算法示例
Mar 07 #Python
浅析Python 读取图像文件的性能对比
Mar 07 #Python
python try 异常处理(史上最全)
Mar 07 #Python
通过shell+python实现企业微信预警
Mar 07 #Python
Python一个简单的通信程序(客户端 服务器)
Mar 06 #Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 #Python
You might like
PHP下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
PHP内核探索:变量存储与类型使用说明
2014/01/30 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
详解 PHP加密解密字符串函数附源码下载
2015/12/18 PHP
PHP微信支付实例解析
2016/07/22 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
mac pecl 安装php7.1扩展教程
2019/10/17 PHP
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
JSON 对象未定义错误的解决方法
2016/09/29 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
深入理解Promise.all
2018/08/08 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
关于angular浏览器兼容性问题的解决方案
2020/07/26 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
[48:56]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 VG vs KG
2018/03/31 DOTA
Python面向对象特殊成员
2017/04/24 Python
python处理csv中的空值方法
2018/06/22 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
全球性的在线时尚男装零售商:boohooMAN
2016/12/17 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
麦当劳辞职信范文
2014/01/18 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
2014年党务公开方案
2014/05/08 职场文书
安全生产承诺书范文
2014/05/22 职场文书
优秀大学生自荐信
2014/06/09 职场文书
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android