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 相关文章推荐
Python3实现连接SQLite数据库的方法
Aug 23 Python
Python中的ceil()方法使用教程
May 14 Python
python通过函数属性实现全局变量的方法
May 16 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
解决Django模板无法使用perms变量问题的方法
Sep 10 Python
深入理解Python中的*重复运算符
Oct 28 Python
python中文编码与json中文输出问题详解
Aug 24 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
wxPython实现列表增删改查功能
Nov 19 Python
解决Numpy中sum函数求和结果维度的问题
Dec 06 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
Python实现快速大文件比较代码解析
Sep 04 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
PHP设计模式之原型设计模式原理与用法分析
2018/04/25 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
2017/03/30 Javascript
bootstrap table表格插件使用详解
2017/05/08 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
Vue 组件参数校验与非props特性的方法
2019/02/12 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
Python json模块使用实例
2015/04/11 Python
在Python中操作时间之mktime()方法的使用教程
2015/05/22 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
浅谈Django自定义模板标签template_tags的用处
2017/12/20 Python
python实现猜数游戏
2020/03/27 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
土木工程毕业生自荐信
2013/09/21 职场文书
机电专业体育教师求职信
2013/09/21 职场文书
旅游管理专业个人求职信范文
2013/12/24 职场文书
保护动物倡议书
2014/04/15 职场文书
大学生活动总结模板
2014/07/02 职场文书
我的中国梦演讲稿800字
2014/08/19 职场文书
抗洪救灾标语
2014/10/08 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL