详解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 相关文章推荐
使用django-suit为django 1.7 admin后台添加模板
Nov 18 Python
在Python下使用Txt2Html实现网页过滤代理的教程
Apr 11 Python
详细解析Python当中的数据类型和变量
Apr 25 Python
python之DataFrame实现excel合并单元格
Feb 22 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
Django forms组件的使用教程
Oct 08 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
Nov 10 Python
Python编程flask使用页面模版的方法
Dec 28 Python
python文件读写代码实例
Oct 21 Python
利用python Selenium实现自动登陆京东签到领金币功能
Oct 31 Python
python实现超级马里奥
Mar 18 Python
解决python3中os.popen()出错的问题
Nov 19 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
Laravel 5.3 学习笔记之 错误&日志
2016/08/28 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
PHP7新特性之抽象语法树(AST)带来的变化详解
2018/07/17 PHP
laravel解决迁移文件一次删除创建字段报错的问题
2019/10/24 PHP
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
JS实现简单打字测试
2020/06/24 Javascript
微信小程序实现点击页面出现文字
2020/09/21 Javascript
Python计算三角函数之asin()方法的使用
2015/05/15 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
浅谈Python中的可变对象和不可变对象
2017/07/07 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
浅谈django框架集成swagger以及自定义参数问题
2020/07/07 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
OpenCV+Python3.5 简易手势识别的实现
2020/12/21 Python
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
丹麦优惠购物网站:PLUSSHOP
2019/03/24 全球购物
师范大学应届生求职信
2013/11/21 职场文书
应届生自我鉴定
2013/12/11 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
挂靠协议书范本
2014/04/22 职场文书
煤矿开采专业求职信
2014/07/08 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
python中的被动信息搜集
2021/04/29 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript