当我们使用matplotlib.plt画图的时候,如果我们要输入中文的标识,使得在输出图像中显示中文,光是以下的做法是不够的。
import matplotlib.pyplot as plt
plt.figure()
plt.bar([1,2,3,4,5,6,7,8,9,10],[5,6,1,2,7,9,3,8,4,10],alpha = 0.5)
plt.xlabel('样本类别')
plt.ylabel('各类样本数量')
plt.show()
要解决这个问题,需要做以下步骤:
一、下载一个你需要的字体,例如“微软雅黑”,格式为ttf,将ttf文件放在一个文件夹下,并记录它关于你的程序保存的位置,例如我的“微软雅黑.ttf”放置在程序文件夹下的文件夹“ttf”中,则路径为“ttf/微软雅黑.ttf”
ttf文件夹下放入字体文件
二、在源代码上添加如下代码,添加的代码在后面做了标记和解释。
import matplotlib.pyplot as plt
import matplotlib as mpl // 新增包
from matplotlib.ticker import MultipleLocator, FormatStrFormatter //新增函数
mpl.rcParams['font.size'] = 15 // 设置字体大小
custom_font = mpl.font_manager.FontProperties(fname='tff/微软雅黑.ttf') // 导入字体文件
plt.figure()
plt.bar([1,2,3,4,5,6,7,8,9,10],[5,6,1,2,7,9,3,8,4,10],alpha = 0.5)
plt.xlabel(u'样本类别',fontproperties=custom_font) // 在中文字前加英文字母u,并且设置字体
plt.ylabel(u'各类样本数量',fontproperties=custom_font) // 在中文字前加英文字母u,并且设置字体
plt.show()