在matplotlib绘制折线图柱状图时,如果对x,y,图表标题,直接使用plot.xlabel(“时间”);plot.(ylabel(“范围”)进行命名,这时显示的不是中文而是空格。
解决方法如下:
导入matplotlib库,使用mpl.rcParams[]进行配置即可
#导入matplotlib库
import matplotlib as mpl
#配置之后便可使用
mpl.rcParams['font.family']='SimHei'
mpl.rcParams['font.sans-serif']=['SimHei']
mpl.rcParams['axes.unicode_minus']=False # 正常显示负号
#可使用该例子查看效果
from matplotlib import pyplot as plt
plt.plot([1,2,3],[1,2,3])
plt.title('例子')
plt.xlabel('时间')
plt.ylabel('范围')
plt.show()
该方法需要自行百度下载simhei.ttf文件很简单,还可以自行设置字体的字号等。局部设置的意思是可对x,y轴设置不同的字体字号。
simhei.ttf下载地址:http://www.downcc.com/font/7665.html
(下载时注意别点到辣鸡流氓软件)
#配置中文字体
#导入matplotlib.font_manager
from matplotlib.font_manager import FontProperties
#代码文件和ttf文件在同一文件夹下可使用绝对地址
#当代码和simhei.ttf文件不在同一个文件夹下时需使用相对地址
font = FontProperties(fname=r"simhei.ttf", size=14)
#相对地址
font1 = FontProperties(fname=r"c:\windows\fonts\STHUPO.TTF")
font2 = FontProperties(fname=r"c:\windows\fonts\STCAIYUN.TTF")
#可使用该例子查看效果
from matplotlib import pyplot as plt
plt.plot([1,2,3],[1,2,3])
#像设置不同字体时fontpropert=font1或font2
plt.title('例子', fontproperties=font))
plt.xlabel('时间', fontproperties=font))
plt.ylabel('范围', fontproperties=font))
plt.show()