将多名学生成绩绘制在一张画布中,并在图中显示学生成绩

from matplotlib import pyplot  as plt

#设置中文
from pylab import mpl
mpl.rcParams['font.sans-serif']=['SimHei']

y1=[80,100,120,80,90,99]
y2=[100,80,130,80,68,80]
y3=[110,100,99,80,60,90]

x=["语文","数学","英语","物理","化学","生物"]

#画出每个学生的成绩折线图
plt.plot(x,y1,label="张三",color="r",linestyle='-',marker='*')
plt.plot(x,y2,label="李四",color="b",linestyle='-',marker='*')
plt.plot(x,y3,label="王五",color="black",linestyle='--',marker='*')

#设置图例
plt.legend(loc="upper left")

#y轴取值
plt.yticks(range(0,151,10))

plt.title("成绩对比")

plt.ylabel("成绩")
plt.xlabel("学科")

for a, b in zip(x, y1):#zip将可迭代对象打包成元组,返回由这些元组组成的列表。这里将x和y1里的数据组合成了坐标,a和b相当于x轴和y轴坐标
    plt.text(a, b, b, ha='center', va='bottom', fontsize=10)#text函数可以给图中的点加标签
for a, b in zip(x, y2):
    plt.text(a, b, b, ha='center', va='bottom', fontsize=10)
for a, b in zip(x, y3):
    plt.text(a, b, b, ha='center', va='bottom', fontsize=10)

'''
text(x, y, s, fontdict=None, **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:注释文本内容的字体颜色
'''

plt.show()

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值