Python实现matplotlib显示中文的方法详解


Posted in Python onFebruary 06, 2018

本文实例讲述了Python实现matplotlib显示中文的方法。分享给大家供大家参考,具体如下:

【注意】

可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:)

import matplotlib.pyplot as plt
import pylab as plt

【效果图】

Python实现matplotlib显示中文的方法详解

【方式一】FontProperties

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties # 步骤一
# ...
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14) # 步骤二
plt.xlabel("x轴", fontproperties=font) # 步骤三
plt.ylabel("y轴", fontproperties=font)
plt.title("标题", fontproperties=font)
plt.show()

总的来说,很丑陋。

【方式二】 fontproperties

import matplotlib.pyplot as plt
# ...
plt.xlabel("x轴")
plt.ylabel("y轴", fontproperties="SimSun") # 步骤一  (宋体)
plt.title("标题", fontproperties="SimHei") #     (黑体)
plt.show()

灵活,另一个优点:不污染全局字体设置

【方式三】rcParams

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)
#...
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
plt.show()

简洁的用法。缺点:污染全局字体设置。(所以需要第二步骤)

【方式四】rc

import matplotlib.pyplot as plt
font = {'family' : 'SimHei',
    'weight' : 'bold',
    'size'  : '16'}
plt.rc('font', **font)        # 步骤一(设置字体的更多属性)
plt.rc('axes', unicode_minus=False) # 步骤二(解决坐标轴负数的负号显示问题)
#...
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
plt.show()

灵活的用法。缺点:影响全局字体(所以需要第二步骤)

【总结】

方式二用时才设置,且不会污染全局字体设置,更灵活
方式三、方式四不需要对字体路径硬编码,而且一次设置,多次使用,更方便。

【测试代码】

import numpy as np
import matplotlib.pyplot as plt
font = {'family' : 'DFKai-SB',
    'weight' : 'bold',
    'size'  : '16'}
plt.rc('font', **font) # pass in the font dict as kwargs
plt.rc('axes',unicode_minus=False)
x = np.linspace(0, 10, 1000)
y = np.sin(x)
z = np.cos(x**2)
plt.figure(figsize=(8,4))
plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)
plt.plot(x,z,"b--",label="$cos(x^2)$")
plt.xlabel("x轴")
plt.ylabel("y轴")
plt.title("标题")
plt.ylim(-1.2,1.2)
plt.legend()
plt.show()

运行结果:

Python实现matplotlib显示中文的方法详解

【附录】

一些中文字体的英文名

宋体 SimSun
黑体 SimHei
微软雅黑 Microsoft YaHei
微软正黑体 Microsoft JhengHei
新宋体 NSimSun
新细明体 PMingLiU
细明体 MingLiU
标楷体 DFKai-SB
仿宋 FangSong
楷体 KaiTi
隶书 LiSu
幼圆 YouYuan
华文细黑 STXihei
华文楷体 STKaiti
华文宋体 STSong
华文中宋 STZhongsong
华文仿宋 STFangsong
方正舒体 FZShuTi
方正姚体 FZYaoti
华文彩云 STCaiyun
华文琥珀 STHupo
华文隶书 STLiti
华文行楷 STXingkai
华文新魏 STXinwei

更多关于Python相关内容可查看本站专题:《Python数学运算技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python标准算法实现数组全排列的方法
Mar 17 Python
详解在Python和IPython中使用Docker
Apr 28 Python
python控制台中实现进度条功能
Nov 10 Python
Python读写txt文本文件的操作方法全解析
Jun 26 Python
实现python版本的按任意键继续/退出
Sep 26 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
Python中max函数用于二维列表的实例
Apr 03 Python
对Django中内置的User模型实例详解
Aug 16 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 Python
python爬虫开发之selenium模块详细使用方法与实例全解
Mar 09 Python
pycharm实现在子类中添加一个父类没有的属性
Mar 12 Python
Python实现自动上京东抢手机
Feb 06 #Python
Python获取指定文件夹下的文件名的方法
Feb 06 #Python
TensorFlow如何实现反向传播
Feb 06 #Python
tensorflow TFRecords文件的生成和读取的方法
Feb 06 #Python
TensorFlow实现创建分类器
Feb 06 #Python
Python模拟随机游走图形效果示例
Feb 06 #Python
Python 12306抢火车票脚本 Python京东抢手机脚本
Feb 06 #Python
You might like
php中的时间显示
2007/01/18 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
简单分析ucenter 会员同步登录通信原理
2014/08/25 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
linux下php上传文件注意事项
2016/06/11 PHP
jquery获取input表单值的代码
2010/04/19 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
如何提高Dom访问速度
2017/01/05 Javascript
JavaScript 保护变量不被随意修改的实现代码
2017/09/27 Javascript
结合Vue控制字符和字节的显示个数的示例
2018/05/17 Javascript
微信小程序mpvue点击按钮获取button值的方法
2019/05/29 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
Python 如何对文件目录操作
2020/07/10 Python
Python实现随机爬山算法
2021/01/29 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
西部世纪.net笔试题面试题
2014/04/03 面试题
英文版销售经理个人求职信
2013/11/20 职场文书
翻译专业应届生求职信
2013/11/23 职场文书
2014年消防工作实施方案
2014/02/20 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
团支部推优材料
2014/05/21 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
2016元旦主持人经典开场白台词
2015/12/03 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
用Python监控你的朋友都在浏览哪些网站?
2021/05/27 Python