欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决python matplot 解决不能输出中文的问题

程序员文章站 2022-03-18 21:37:10
...

        在使用python的matplot模块时,常常需要输出中文的设定,但由于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;否则无法显示负号