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排序方法实例分析
Apr 30 Python
Python中操作mysql的pymysql模块详解
Sep 13 Python
使用python实现tcp自动重连
Jul 02 Python
Python进度条实时显示处理进度的示例代码
Jan 30 Python
解决Python下json.loads()中文字符出错的问题
Dec 19 Python
Flask之请求钩子的实现
Dec 23 Python
python getpass实现密文实例详解
Sep 24 Python
python regex库实例用法总结
Jan 03 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 Python
Python 转移文件至云对象存储的方法
Feb 07 Python
python基于机器学习预测股票交易信号
May 25 Python
python如何利用cv2.rectangle()绘制矩形框
Dec 24 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面向对象分析设计的经验原则
2008/09/20 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
JavaScript访问样式表代码
2010/10/15 Javascript
JS上传前预览图片实例
2013/03/25 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
Jquery调用iframe父页面中的元素及方法
2016/08/23 Javascript
JS实现多物体运动的方法详解
2018/01/23 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
layui实现动态和静态分页
2018/04/28 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
js实现简单放大镜效果
2020/03/07 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
python通过yield实现数组全排列的方法
2015/03/18 Python
Python实现购物程序思路及代码
2017/07/24 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
使用pyplot.matshow()函数添加绘图标题
2020/06/16 Python
基于Python pyecharts实现多种图例代码解析
2020/08/10 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
怀旧香味蜡烛:Homesick
2019/11/02 全球购物
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
个人公开承诺书
2014/03/28 职场文书
工商干部先进事迹
2014/05/14 职场文书
优秀班组长事迹
2014/05/31 职场文书
好好学习保证书
2015/02/26 职场文书
Django操作cookie的实现
2021/05/26 Python
Go语言空白表示符_的实例用法
2021/07/04 Golang