python绘图显示中文字体的解决方案

by Liu Yue/2016-12-27
import matplotlib.pyplot as plt
import matplotlib as mpl

'''mpl.rcParams['font.sans-serif'] = ['FangSong'] 设置中文字体的方法mac不适用,windows应该可以'''
font = mpl.font_manager.FontProperties(fname='/System/Library/Fonts/STHeiti Light.ttc')
# 不设置中文字体会显示成方块,图表显示的中文必须为unicode格式,将字体文件重命名为font,STHeiti Light为mac的黑体
mpl.rcParams['axes.unicode_minus'] = False #解决图像是显示负号'-'为方块的问题

x = arange(-6, 6, 0.01)
y = 2 * x - 3
plt.plot(x, y)
plt.title(u'中文',fontproperties=font)
plt.xlabel(u'X坐标',fontproperties=font)
plt.ylabel(u'Y坐标',fontproperties=font)
plt.show()