让python中的matplotlib显示中文
python中的matplotlib仅支持Unicode编码,默认是不显示中文的,如果让其默认显示中文,有下面3种方法:
1.最简单的方法 全局设置中文字体(推荐)
-
# -*- coding: utf-8 -*-
-
-
import matplotlib.pyplot as plt
-
from pylab import mpl
-
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 雅黑字体
-
plt.xlabel(u"哈哈")
-
plt.ylabel(u"哈哈")
-
plt.title(u"哈哈")
-
plt.show()
2.单独修改绘图的字体
-
# -*- coding: utf-8 -*-
-
from matplotlib.font_manager import FontProperties
-
import matplotlib.pyplot as plt
-
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14)
-
plt.xlabel(u"哈哈", fontproperties=font)
-
plt.ylabel(u"哈哈", fontproperties=font)
-
plt.title(u"哈哈",fontproperties=font)
-
plt.show()
3.修改源文件①在python的安装目录中找到配置文件: %Python_Home%\Lib\site-packages\matplotlib\mpl-data\matplotlibrc (如,我的是在C:\Python34\Lib\site-packages\matplotlib\mpl-data),用任意文本编辑器打开。
②找到139行的font.family : sans-serif将其前面的#注释号去掉
③找到151行的font.sans-serif :AR PL UMing CN, SimHei, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif将【AR PL UMing CN, SimHei】添加在最前面,其中AR PL UMing CN代表:宋体。SimHei代表:黑体。并将前面的#注释号去掉,重启编辑器后,便可显示中文了。
④同时需要更改264行的axes.unicode_minus : False;使其值为False;否则无法显示负号
字体和英文对照
下文出处:http://www.360doc.com/content/14/0713/12/16740871_394080556.shtml
这是别人整理的Windows的字体对应名称,根据需要自行更换!
黑体 | SimHei |
微软雅黑 | Microsoft YaHei |
微软正黑体 | Microsoft JhengHei |
新宋体 | NSimSun |
新细明体 | PMingLiU |
细明体 | MingLiU |
标楷体 | DFKai-SB |
仿宋 | FangSong |
楷体 | KaiTi |
仿宋_GB2312 | FangSong_GB2312 |
楷体_GB2312 | KaiTi_GB2312 |
宋体:SimSuncss中中文字体(font-family)的英文名称
Mac OS的一些:
华文细黑:STHeiti Light [STXihei]
华文黑体:STHeiti
华文楷体:STKaiti
华文宋体:STSong
华文仿宋:STFangsong
儷黑 Pro:LiHei Pro Medium
儷宋 Pro:LiSong Pro Light
標楷體:BiauKai
蘋果儷中黑:Apple LiGothic Medium
蘋果儷細宋:Apple LiSung Light
Windows的一些:
新細明體:PMingLiU
細明體:MingLiU
標楷體:DFKai-SB
黑体:SimHei
新宋体:NSimSun
仿宋:FangSong
楷体:KaiTi
仿宋_GB2312:FangSong_GB2312
楷体_GB2312:KaiTi_GB2312
微軟正黑體:Microsoft JhengHei
微软雅黑体:Microsoft YaHei
装Office会生出来的一些:
隶书:LiSu
幼圆:YouYuan
华文细黑:STXihei
华文楷体:STKaiti
华文宋体:STSong
华文中宋:STZhongsong
华文仿宋:STFangsong
方正舒体:FZShuTi
方正姚体:FZYaoti
华文彩云:STCaiyun
华文琥珀:STHupo
华文隶书:STLiti
华文行楷:STXingkai
华文新魏:STXinwei
转载地址:https://blog.csdn.net/ass7798/article/details/79087312上一篇: C语言实现递归排序