文章目录
试题示例
绘制下图所示的表格
根据下表的数据,将班级名称一列作为x轴的刻度标签,将男生和女生两列的数据作为刻度标签对应的数值,使用bar()函数绘制下图所示的柱形图。
方式一
python
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']="SimHei"
plt.rcParams['axes.unicode_minus']=False
x1=np.array(["高二1班","高二2班","高二3班","高二4班","高二5班","高二6班",])
ym=np.array([90.5,89.5,88.7,88.5,85.2,86.6])
yw=np.array([92.7,87.0,90.5,85.0,89.5,89.8])
x=np.arange(len(yw))
width=0.3
plt.bar(x,ym,width,label="男生平均分")
plt.bar(x+width,yw,width,label="女生平均分")
plt.ylim(0,ym.max()*1.35)
plt.xticks(x,labels=x1)
plt.ylabel("分数")
plt.title("高二各班男生、女生英语平均成绩")
avg=(np.average(ym)+np.average(yw))/2
plt.axhline(avg,ls="--",color='g',label="英语平均成绩")
plt.legend()
#print(avg)
plt.show()
方式二
python
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
y=pd.read_excel(r"d:/a.xlsx")
plt.rcParams['font.sans-serif']="SimHei"
plt.rcParams['axes.unicode_minus']=False
x=np.arange(len(y["mavg"]))
width=0.3
plt.bar(x,y["mavg"],width,label="男生平均分")
plt.bar(x+width,y["wavg"],width,label="女生平均分")
plt.ylim(0,120)
plt.xticks(x,labels=y["bgmc"])
plt.ylabel("分数")
plt.title("高二各班男生、女生英语平均成绩")
avg=(np.mean(y["mavg"])+np.mean(y["wavg"]))/2
plt.axhline(avg,ls="--",color='g',label="英语平均成绩")
plt.legend()
plt.show()