设置字体类型,格式
用python的matplotlib画图时,坐标字符显示每个字符间距是一样的,看着很别扭,如下图:
分析原因,是由字体格式造成的,影刺将显示的字体设置为Times New Roman即可。然后在网上找了很多资料修改坐标刻度线显示字体,结果只需要在显示刻度后面加上一个参数即可解决(早点查一下封装函数就好了)
plt.figure(figsize=[15,8])
plt.scatter(X, Y, label = 'RealValue')
plt.plot(X, func(X, a, b), 'red', label = 'CurveLine')
plt.title(station, fontdict={'family' : 'Times New Roman', 'size' : 16})
plt.ylabel('Clocks($\mu S$)', fontdict={'family' : 'Times New Roman', 'size' : 16})
plt.xlabel('Time', fontdict={'family' : 'Times New Roman', 'size' : 16})
plt.yticks(fontproperties = 'Times New Roman', size = 14)
plt.xticks(fontproperties = 'Times New Roman', size = 14)
plt.legend(prop={'family' : 'Times New Roman', 'size' : 16})
plt.savefig('./stationClocks/' + station + '.ps', dpi = 200)
plt.show()
让坐标轴上的点显示完整
原始:
希望边界上显示完整,如下
在画图代码中添加clip_on=False
plt.plot(x, clip_on=False)
给图形添加网格线:
linestyle设置网格线形式,alpha设置网格线透明度
plt.grid(linestyle='-.',alpha=0.4)
zorder功能:
控制轴的默认绘制顺序是补丁,线条,文本。 此顺序由zorder属性确定。 设置以下默认值
图例见该链接
#添加方式
plt.plot(x,cost_40,clip_on=False,alpha = 1,linestyle='-',marker='<',label=u'M=40',zorder=3)
如果想要图中的点为空心,增加一个参数: (该参数也在plt.plot()中设置)
markerfacecolor='none'
画图必备表
color