Python实现matplotlib显示中文的方法详解
作者:罗兵 时间:2021-03-27 18:39:22
本文实例讲述了Python实现matplotlib显示中文的方法。分享给大家供大家参考,具体如下:
【注意】
可能与本文主题无关,不过我还是想指出来:使用matplotlib库时,下面两种导入方式是等价的(我指的是等效,当然这个说法可以商榷:)
import matplotlib.pyplot as plt
import pylab as plt
【效果图】
【方式一】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()
运行结果:
【附录】
一些中文字体的英文名
宋体 | 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程序设计有所帮助。
来源:http://www.cnblogs.com/hhh5460/p/4323985.html
标签:Python,matplotlib,显示中文
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python imread、newaxis用法详解
2021-10-09 15:44:08
好的Python培训机构应该具备哪些条件
2022-06-22 14:52:57
Python threading.local代码实例及原理解析
2021-09-03 06:14:07
Python趣味挑战之用pygame实现飞机塔防游戏
2022-07-18 04:00:02
![](https://img.aspxhome.com/file/2023/7/95867_0s.gif)
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
2023-06-11 23:08:24
基于jQuery实现的立体文字渐变效果
2009-05-18 19:15:00
![](https://img.aspxhome.com/file/UploadPic/20095/18/pic-22s.jpg)
pyqt 实现在Widgets中显示图片和文字的方法
2021-12-25 07:28:16
![](https://img.aspxhome.com/file/2023/4/100844_0s.jpg)
在SQL Server数据库开发中的十大问题
2008-12-18 14:39:00
Python中类的继承代码实例
2023-11-26 05:29:14
详解python发送各类邮件的主要方法
2023-07-27 11:08:50
超简单的Python HTTP服务
2023-01-22 06:19:15
显示你个性的鼠标指针
2011-06-14 09:41:41
python如何往列表头部和尾部添加元素
2021-12-17 07:05:17
python logging类库使用例子
2023-10-31 11:17:11
Linux安装卸载Mysql数据库
2011-01-29 16:45:00
![](https://img.aspxhome.com/file/UploadPic/20111/29/2011129165230857s.jpg)
Go语言实现文件上传
2023-07-08 18:26:38
Django2.1.3 中间件使用详解
2023-11-06 19:46:00
![](https://img.aspxhome.com/file/2023/1/85151_0s.png)
ASP实例:即时显示当前页面浏览人数
2008-04-19 22:02:00
Python统计分析模块statistics用法示例
2021-01-20 08:44:16
如何运用python读写CSV文件
2021-11-13 04:35:36
![](https://img.aspxhome.com/file/2023/4/97674_0s.png)