将d:盘abc文件夹中的“例题锦集.xlsx”文件打开,同时打开其中的“班级成绩”工作表,以“班级”为依据建立雷达图。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #设置默认字体
plt.rcParams['axes.unicode_minus']=False #正常显示负号
df=pd.read_excel('d:\\abc\\例题锦集.xlsx',sheet_name="班级成绩")
df=df.set_index('科目') #设置行索引
def ldt(data,feature): #自定义函数
cols=['语文','数学','外语','物理','化学'] #指定各科名称
colors=['green','blue','red'] #班级设置显示颜色
angles=np.linspace(0.1*np.pi,2.1*np.pi,len(cols),endpoint=False) #根据科目对圆形进行等分
angles=np.concatenate((angles,[angles[0]])) #连接刻度线数据
fig=plt.figure(figsize=(8,8)) #设置图表窗口大小
ax=fig.add_subplot(111,polar=True) #设置图表显示位置
for i,c in enumerate(feature):
stats=data.loc[c] #获取班级科目数据
stats=np.concatenate((stats,[stats[0]])) #连接班级的指标数据
ax.plot(angles,stats,'-',linewidth=6,c=colors[i],label='%s'%(c)) #制作雷达图
ax.fill(angles,stats,color=colors[i],alpha=0.25) #填充颜色
ax.legend() #添加图例
ax.set_yticklabels([]) #隐藏坐标轴数据
return fig
fig=ldt(df,['甲班','乙班','丙班']) #调用自定义函数制作雷达图
plt.show()

视频加载中...