解决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;否则无法显示负号