关于Python使用matplotlib中文显示和负号的问题
今天需要画一幅含有中文并且标注上有公式的图片。应为原来都是用因为画的图,因此忽然就懵逼了。然后在查阅了一些文献之后发现了解决的办法。现在描述具体流程如下
· 首先构建一个函数set_Matplotlib_zh(FontType):.代码如下:
def set_Matplotlib_zh(FontType='FangSong'):#默认参数字体为仿宋
from matplotlib.pylab import mpl
mpl.rcParams['font.sans-serif'] = [FontType] #我们可以自由的改变字体
mpl.rcParams['axes.unicode_minus']=False #这里是设置在matplotlib中显示负号
· 在构建了这个函数后,把该函数放入到pyplot和pylab中作为一个函数,之后再调用pyplot等函数的时候进行一次设置即可
例如:
plt.set_Matplotlib_zh() #使用默认的字体,默认为仿宋。
需要注意的是在图片中写入中文的时候需要将中文转换为unicode码,应为matplotlib目前只识别unicode码。方法是在中文字符串前添加一个符号’u’。eg:
x = [-1,-2,-3]
y= [4,5,6]
plt.plot(x,y,color='g',marker='o')
plt.xlabel(u'x轴')
plt.ylabel(u'y轴')
plt.title(u'测试中文与负号在matplotlib中的显示情况')
plt.show()
显示结果为