用雷达图绘制员工绩效

一、demo

def radar(table,m,n):
    """
    参数:tables工作表 ; m,n:绘图对象,即绘制第几行至第几行
    """
    import matplotlib.pyplot as plt
    import matplotlib.pyplot
    import numpy as np

    matplotlib.rcParams['font.family'] = 'SimHei'
    matplotlib.rcParams['font.sans-serif'] = ['SimHei']
    radar_labels = np.array(table.row_values(0,1,end_colx=None))
    Attr = 8
    lt=[]

    for i in range(m,n):
        lt.append(table.row_values(i,1,end_colx=None))

    data = np.array(lt)

    data = data.T
    data_labels= (table.col_values(0,m,end_rowx=n))
    angels = np.linspace(0,2*np.pi,Attr,endpoint = False)
    data = np.concatenate((data,[data[0]]))
    angels = np.concatenate((angels,[angels[0]]))
    fig = plt.figure(facecolor='white')
    plt.subplot(111,polar = True)
    plt.plot(angels,data,'o-',linewidth = 1)
    a = data_labels
    legend=plt.legend(a,loc= (1.2,0.80),labelspacing=0.1)
    plt.setp(legend.get_texts(),fontsize='small')

    plt.fill(angels,data,color = 'g',alpha =0.1)

    plt.thetagrids(angels*180/np.pi,radar_labels)  #添加最外层指标

    plt.figtext(0.5,1.0,'员工业绩分析',ha='center',size =10)   
    plt.grid(True)
#     plt.savefig('holland_radar.JPG')
    plt.show()
if __name__=='__main__':
    import xlrd
    data = xlrd.open_workbook('业绩指标衡量.xlsx')
    table = data.sheet_by_name('Sheet1')
    #radar(table,1,7) #可以将所员工绘制在同一个雷达图中
    for i in range(1,7):
        radar(table,i,i+1)

结果:截取最后一张图

二、所用数据

posted on 2019-08-12 17:35  LiErRui  阅读(961)  评论(0)    收藏  举报

导航