详解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使用PythonMagick将jpg图片转换成ico图片的方法
Mar 26 Python
python实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
Python端口扫描简单程序
Nov 10 Python
详解python之配置日志的几种方式
May 22 Python
Django restframework 源码分析之认证详解
Feb 22 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
Python+opencv+pyaudio实现带声音屏幕录制
Dec 23 Python
使用Tensorflow实现可视化中间层和卷积层
Jan 24 Python
python如何通过闭包实现计算器的功能
Feb 22 Python
Python3 中sorted() 函数的用法
Mar 24 Python
详解Python requests模块
Jun 21 Python
Python 操作pdf pdfplumber读取PDF写入Exce
Aug 14 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
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
用PHP程序实现支持页面后退的两种方法
2008/06/30 PHP
php 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
详解PHP+AJAX无刷新分页实现方法
2015/11/03 PHP
PHP flush 函数使用注意事项
2016/08/26 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
2017/08/28 PHP
thinkphp5框架API token身份验证功能示例
2019/05/21 PHP
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
vue实现点击选中,其他的不选中方法
2018/09/05 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
[05:14]辉夜杯主赛事第二日 RECAP精彩回顾
2015/12/27 DOTA
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
Python编程之变量赋值操作实例分析
2017/07/24 Python
Python_LDA实现方法详解
2017/10/25 Python
Python 列表理解及使用方法
2017/10/27 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
Tensorflow 实现修改张量特定元素的值方法
2018/07/30 Python
python实现名片管理系统
2018/11/29 Python
Django REST framework内置路由用法
2019/07/26 Python
pytorch中nn.Conv1d的用法详解
2019/12/31 Python
用pytorch的nn.Module构造简单全链接层实例
2020/01/14 Python
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
ProBikeKit澳大利亚:自行车套件,跑步和铁人三项装备
2016/11/30 全球购物
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
数字漫画:comiXology
2020/06/13 全球购物
专升本自我鉴定
2013/10/10 职场文书
酒吧总经理岗位职责
2013/12/10 职场文书
银行优秀员工事迹
2014/02/06 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
家庭贫困证明
2014/09/23 职场文书
2014年大学班级工作总结
2014/11/14 职场文书
电气工程师岗位职责
2015/02/12 职场文书
PostgreSQL出现死锁该如何解决
2022/05/30 PostgreSQL