matplotlib图例、标签、坐标轴刻度的字体设置方式
作者:htfenght
这篇文章主要介绍了matplotlib图例、标签、坐标轴刻度的字体设置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
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()
在matplotlib使用中文坐标轴,设置坐标轴,标题字体及字体大小
1.matplotlib的坐标轴中一般是不支持中文
在windows中要使用中文坐标轴的话,需要调用电脑中的字体。
实现代码:
from matplotlib import font_manager#导入字体管理模块 my_font = font_manager.FontProperties(fname="C:/WINDOWS/Fonts/STSONG.TTF") #定义中文字体属性,文字储存路径可以在C:/WINDOWS/Fonts/找到,这里我设置的宋体 plt.xlabel("时间",fontproperties = my_font,fontsize = 18) #在设置x坐标中文标注,令fontproperties = my_font,fontsize令字体为18号 #plt.title,plt.ylabel,plt.xticks,plt.yticks设置中文标注类似
完整代码实例如下:
from matplotlib import pyplot as plt#导入matplotlib from matplotlib import font_manager#导入字体管理模块 import random#导入随机生成模块 my_font = font_manager.FontProperties(fname="C:/WINDOWS/Fonts/STSONG.TTF") #定义中文字体属性,文字储存路径可以在C:/WINDOWS/Fonts/找到,这里我设置的宋体 y = [random.randint(20,35) for i in range(120)]#y值为120个在20-35之间随机数 x = range(0,120)#x值为0-120 plt.figure(figsize=(15,10),dpi=90)#图片大小为15*10,每英寸90个像素点 _x_labels = ["10点{}分".format(i) for i in range(60)] _x_labels += ["11点{}分".format(i) for i in range(60)]#设置x坐标轴中文刻度 plt.xticks(list(x[::3]),_x_labels[::3],rotation=45,fontproperties=my_font,fontsize = 12)#坐标轴刻度显示步长为3,为了避免坐标轴字体重叠,旋转45度,fontproperties设置字体 plt.plot(x,y) plt.xlabel("时间",fontproperties = my_font,fontsize = 18)#设置x坐标标注,字体为18号 plt.ylabel("每分钟对应的温度",fontproperties = my_font,fontsize = 18)#设置y坐标标注 plt.title("10点到12点每分钟温度变化图",fontproperties = my_font,fontsize = 24)#设置标题 plt.plot(x,y)#绘图 plt.show()#显示
图片结果如图所示:
2.绘制两条折线及添加图例,添加网格
from matplotlib import pyplot as plt from matplotlib import font_manager import random plt.figure(figsize=(10,8),dpi=80) my_font = font_manager.FontProperties(fname="C:/WINDOWS/Fonts/STSONG.TTF") x = range(11,31) y_1 = [random.randint(0,5) for i in range(20)] y_2 = [random.randint(0,5) for i in range(20)] _x_label = ["{}岁".format(i) for i in range(11,31)] plt.xticks(list(x[::2]),_x_label[::2],rotation = 45,fontproperties = my_font,fontsize = 12) plt.plot(x,y_1,label = "自己",color="red") plt.plot(x,y_2,label= "朋友",linestyle="--",linewidth=2,alpha = 0.4) plt.xlabel("年龄",fontproperties = my_font,fontsize = 18) plt.ylabel("每年交的朋友",fontproperties = my_font,fontsize = 18) plt.title("11岁到30岁每年交的朋友变化图",fontproperties = my_font,fontsize = 24) plt.grid(alpha = 0.4)#添加网格,alpha = 0.4透明度 plt.legend(prop=my_font,loc='best')#添加图例 plt.show()
图片结果如图所示:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。