excel表内数据内容:
import pandas as pd
import matplotlib.pyplot as plt # 导入绘图库
%matplotlib inline
import seaborn as sns #导入seaborn
plt.rcParams['font.family']='SimHei' # 设置黑体字体以正常显示中文
plt.rcParams['axes.unicode_minus']=False # 正常显示负号
plt.rcParams['font.size'] = 13
df = pd.read_excel('data1027.xlsx',sheet_name='Sheet1',index_col=False)
df.fillna(method='ffill',inplace=True)
#填充后的df内容
df.columns = ['科目','性别','平均成绩']
g = sns.catplot(x='科目',y='平均成绩',hue='性别',kind='bar',
data=df,height=6,aspect=1.5,ci=None)
ax = g.ax #返回当前子图
for p in ax.patches:#遍历图中所有条形,ha:水平居中 va:垂直底部对齐
ax.text(p.get_x() + p.get_width()/2,p.get_height(),
'%.1f' % p.get_height(),
fontsize = 12,color='blue',ha='center',va='bottom')
plt.show()
plt.savefig('8周课内男女生各科目平均成绩T1.png')
for p in ax.patches: # 遍历图中所有条形,ha:水平居中,va:垂直底部对齐
ax.text(p.get_x() + p.get_width()/2, p.get_height(),
'%.1f'% p.get_height(),fontsize=12,color='blue',ha='center',va='bottom')
plt.savefig('8周课内男女生各科目平均成绩T1.png')
plt.show()
#柱形图效果