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脚本
Feb 10 Python
Python使用metaclass实现Singleton模式的方法
May 05 Python
python链接Oracle数据库的方法
Jun 28 Python
python开发利器之ulipad的使用实践
Mar 16 Python
Python虚拟环境项目实例
Nov 20 Python
Python paramiko模块的使用示例
Apr 11 Python
解决pandas 作图无法显示中文的问题
May 24 Python
python3监控CentOS磁盘空间脚本
Jun 21 Python
Python 支付整合开发包的实现
Jan 23 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
Oct 24 Python
Python中的流程控制详解
Feb 18 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
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
php学习之数据类型之间的转换代码
2011/05/29 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
php实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
浅谈thinkphp的实例化模型
2015/01/04 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
2016/09/30 PHP
ThinkPHP中图片按比例切割的代码实例
2019/03/08 PHP
PHP底层运行机制与工作原理详解
2020/07/31 PHP
我见过最全的个人js加解密功能页面
2007/12/12 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
用JS中split方法实现彩色文字背景效果实例
2016/08/24 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
jQuery ajax仿Google自动提示SearchSuggess功能示例
2019/03/28 jQuery
javascript关于“时间”的一次探索
2019/07/24 Javascript
使用vue打包进行云服务器上传的问题
2020/03/02 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
python k-近邻算法实例分享
2014/06/11 Python
python实现用户登陆邮件通知的方法
2015/07/09 Python
Python实现发送QQ邮件的封装
2017/07/14 Python
手把手教你python实现SVM算法
2017/12/27 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
2019/02/07 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
Python如何省略括号方法详解
2020/03/21 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
Stubhub英国:购买体育、演唱会和剧院门票
2018/06/10 全球购物
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
教师实习自我鉴定
2013/12/18 职场文书
服务生自我鉴定
2014/01/22 职场文书
安全生产实施方案
2014/02/23 职场文书
差生评语大全
2014/05/04 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
法学专业求职信范文
2015/03/19 职场文书