python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > matplotlib图例、标签、坐标轴刻度的字体设置

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()

图片结果如图所示:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文