详解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 相关文章推荐
简单分析Python中用fork()函数生成的子进程
May 04 Python
Python while、for、生成器、列表推导等语句的执行效率测试
Jun 03 Python
Python通过poll实现异步IO的方法
Jun 04 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
pandas实现将dataframe满足某一条件的值选出
Jun 12 Python
使用wxpy实现自动发送微信消息功能
Feb 28 Python
新手学python应该下哪个版本
Jun 11 Python
python集合能干吗
Jul 19 Python
浅谈如何使用python抓取网页中的动态数据实现
Aug 17 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
详解python中的异常捕获
Dec 15 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 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
PHP5 操作MySQL数据库基础代码
2009/09/29 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
解析crontab php自动运行的方法
2013/06/24 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
JAVASCRIPT模式窗口中下载文件无法接收iframe的流
2013/10/11 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
javascript的数组和常用函数详解
2014/05/09 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
2015/08/31 Javascript
全面解析Bootstrap弹窗的实现方法
2015/12/01 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
简单谈谈javascript高级特性
2019/09/04 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
2019/09/24 Javascript
Python文件读取的3种方法及路径转义
2015/06/21 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
python多维数组切片方法
2018/04/13 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
django多文件上传,form提交,多对多外键保存的实例
2019/08/06 Python
Python基于smtplib模块发送邮件代码实例
2020/05/29 Python
澳大利亚头发和美容产品购物网站:OZ Hair & Beauty
2020/03/27 全球购物
求职信的要素有哪些呢
2013/12/26 职场文书
公司承诺书范文
2014/05/19 职场文书
个人工作表现评价材料
2014/09/21 职场文书
python中print格式化输出的问题
2021/04/16 Python
MySQL 慢查询日志深入理解
2021/04/22 MySQL
Nginx中使用Lua脚本与图片的缩略图处理的实现
2022/03/18 Servers