设置图例
首先需要给每条线添加一个label,然后使用legend函数设置图例
month = np.arange(1, 13)
cost = np.random.randint(10,1000,12,int) # 12个月的支出
income = np.random.randint(0,1000,12,int) # 12个月的收入
plt.xticks(month,['%d月'%i for i in month]) # x轴会自动只显示偶数刻度,所以要让他全部显示1-12
plt.plot(month, cost,label='支出') # 设置第一条线的标签名称label
plt.plot(month,income,label='收入')
plt.legend() # 图例使用默认位置(自动找到空位显示),名称使用每条线的label
plt.show()
还可以指定图例的位置,使用 loc属性
plt.legend(loc='lower left')
在上图的基础上,设置图例显示位置在左下角
当然,最好使用默认位置,这样Matplotlib会自动找到合适的位置显示图例,防止覆盖线条
设置线条数据值
plt.text(x, y, s, fontsize, verticalalignment,
horizontalalignment,rotation , kwargs)
(1)x,y:标签添加的位置,注释文本内容所在位置的横/纵坐标,默认是根据坐标轴的数据来度量的,是绝对值,也就是说图中点所在位置的对应的值,特别的,如果你要变换坐标系的话,要用到transform=ax.transAxes参数。(2)s:标签的符号,字符串格式,比如你想加个“我爱python”,更多的是你标注跟数据有关的主体。 (3)fontsize:加标签字体大小,取整数。 (4)verticalalignment:垂直对齐方式 ,可选 ‘center’ ,‘top’ , ‘bottom’,‘baseline’ 等 (5)horizontalalignment:水平对齐方式 ,可以填 ‘center’ , ‘right’ ,‘left’ 等 (6)rotation:标签的旋转角度,以逆时针计算,取整 (7)family :设置字体 (8)style: 设置字体的风格 (9)weight:设置字体的粗细 (10) bbox:给字体添加框, 如 bbox=dict(facecolor=‘red’, alpha=0.5) 等。 (11)string:注释文本内容 (12)color:注释文本内容的字体颜色
一般使用
month = np.arange(1, 13)
cost = np.random.randint(10,1000,12,int) # 12个月的支出
plt.plot(month, cost)
plt.text(6,200,s='支出曲线',ha='right')
plt.show()
显示每个点的值
month = np.arange(1, 13)
cost = np.random.randint(10,1000,12,int) # 12个月的支出
plt.plot(month, cost)
# 将month的每一个值与cost的每个值一一对应
for x, y in zip(month, cost):
plt.text(x,y,y,fontdict=dict(fontsize=14),ha='center',va='bottom')
plt.show()
运用在柱状图中,显示每个柱体的高度
month = np.arange(1, 13)
cost = np.random.randint(10,1000,12,int) # 12个月的支出
plt.bar(month, cost)
# 将month的每一个值与cost的每个值一一对应
for x, y in zip(month, cost):
plt.text(x,y,y,fontdict=dict(fontsize=14),ha='center',va='bottom')
plt.show()
标签:plt,cost,text,Matplotlib,month,图例,np,12
From: https://blog.51cto.com/u_16131726/6951808