【Python笔记】多级雷达图绘制

目录

一、实例1:个人能力画像雷达图

二、实例2:霍兰德人格分析雷达图

三、实例3:某校数字校园指标分析雷达图

(一)基础设施分析

(二)信息资源分析

(三)应用服务分析

(四)网络安全分析

(五)保障体系分析

(六)程序代码


一、实例1:个人能力画像雷达图

# -*- coding: utf-8 -*-
"""
Created on Sat Jul  1 20:52:54 2023

@author: zcq
"""

import numpy as np
import matplotlib.pyplot as plt
import matplotlib

matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif']=['SimHei']

labels = np.array(['A1:综合','A2:学历','A3:职称','A4:教学','A5:培训','A6:科研'])
nAttr = 6
data = np.array([7,5,9,7,8,6])
angels = np.linspace(0,2*np.pi,nAttr,endpoint=False)
data  = np.concatenate((data,[data[0]]))#级联函数data=[7, 5, 6, 9, 8, 6, 7]
angels = np.concatenate((angels,[angels[0]]))

fig = plt.figure(facecolor='white')
plt.subplot(111,polar=True)
plt.plot(angels,data,'bo-',color='g',linewidth=2)
plt.fill(angels,data,facecolor='g',alpha=0.25)
plt.thetagrids(angels*180/np.pi,labels)
plt.figtext(0.52,0.95,'个人特征画像',ha='center')
plt.grid(True)
plt.savefig('radar.jpg')
plt.show()

 二、实例2:霍兰德人格分析雷达图

# -*- coding: utf-8 -*-
"""
Created on Sat Jul  1 20:52:54 2023

@author: zcq
"""

import numpy as np
import matplotlib.pyplot as plt
import matplotlib

matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif']=['SimHei']

radar_labels = np.array(['A1:研究型(I)','A2:艺术型(A)','A3:社会型(S)',\
                         'A4:企业型(E)','A5:常规型(C)','A6:现实型(R)'])
nAttr = 6

data = np.array([[0.40,0.32,0.35,0.30,0.30,0.88],
                 [0.85,0.35,0.30,0.40,0.40,0.30],
                 [0.43,0.89,0.30,0.28,0.22,0.30],
                 [0.30,0.25,0.48,0.85,0.45,0.40],
                 [0.20,0.38,0.87,0.45,0.32,0.28],
                 [0.34,0.31,0.38,0.40,0.92,0.28]])
data_labels = ('工程师','实验员','艺术家','推销员','社会工作者','记事员')

angels = np.linspace(0,2*np.pi,nAttr,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,alpha=0.2)
plt.fill(angels,data,alpha=0.25)
plt.thetagrids(angels*180/np.pi,radar_labels)
plt.figtext(0.52,0.95,'霍兰德人格分析',ha='center',size=20)

legend = plt.legend(data_labels,loc=(0.94,0.8),labelspacing=0.1)
plt.setp(legend.get_texts(),fontsize='small') 

plt.grid(True)
plt.savefig('Holland_radar.jpg')
plt.show()

三、实例3:某校数字校园指标分析雷达图

#定义绘制雷达图函数
'''
nAttr:数组元素个数
data:绘图数组
strTilte:雷达图标题
strFilename:保存文件名
'''
def myPlotRadar(nAttr,data,strTilte,strFilename):
    angels = np.linspace(0,2*np.pi,nAttr,endpoint=False)
    data  = np.concatenate((data,[data[0]]))
    angels = np.concatenate((angels,[angels[0]]))     
    plt.figure(facecolor='white')
    plt.subplot(111,polar=True)
    plt.plot(angels,data,'bo-',color='g',linewidth=2)
    plt.fill(angels,data,facecolor='g',alpha=0.25)
    plt.thetagrids(angels*180/np.pi,labels)
    plt.figtext(0.52,0.95,strTilte,ha='center')
    plt.grid(True)
    plt.savefig(strFilename)
    plt.show() 
#A1-5:总体雷达图
labels = np.array(['A1:基础设施','A2:信息资源','A3:应用服务',
                   'A4:网络安全','A5:保障体系'])
nAttr = 5
data = np.array([5.5,7.05,6.1,8.27,8.47])
strTilte = '西安电力高等专科学校2023年数字校园对标评估分析'
strFilename = 'radar_All.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename)

(一)基础设施分析

#A1:基础设施
labels = np.array(['A1.1:校园网络','A1.2:数据中心','A1.3:教学环境'])
nAttr = 3
data = np.array([5.67,7.0,4.9])
strTilte = '西安电力高等专科学校-A1:基础设施'
strFilename = 'radar_A1.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

(二)信息资源分析

#A2:信息资源
labels = np.array(['A2.1:数据资源','A2.2:教学资源','A2.3:资源管理'])
nAttr = 3
data = np.array([5.0,7.58,6.67])
strTilte = '西安电力高等专科学校-A2:信息资源'
strFilename = 'radar_A2.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

(三)应用服务分析

#A3:应用服务
labels = np.array(['A3.1:基础平台','A3.2:教学应用','A3.3:教学评价',
                   'A3.4:管理服务'])
nAttr = 4
data = np.array([5.0,7,6.67,5.5])
strTilte = '西安电力高等专科学校-A3:应用服务'
strFilename = 'radar_A3.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

(四)网络安全分析

#A4:网络安全
labels = np.array(['A4.1:基础设施安全','A4.2:信息系统安全','A4.3:终端安全',
                   'A4.4:数据安全','A4.5:内容安全','A4.6:安全管理'])
nAttr = 6
data = np.array([10.0,10,8,5.5,10,8])
strTilte = '西安电力高等专科学校-A4:网络安全'
strFilename = 'radar_A4.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

(五)保障体系分析

#A5:保障体系
labels = np.array(['A5.1:组织机构','A5.2:人员队伍','A5.3:规章制度',
                   'A5.4:经费保障'])
nAttr = 4
data = np.array([8.67,7.2,10,8.33])
strTilte = '西安电力高等专科学校-A5:保障体系'
strFilename = 'radar_A5.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

(六)程序代码

# -*- coding: utf-8 -*-
"""
Created on Sun Jul  9 10:23:25 2023

@author: Lenovo
"""
# -*- coding: utf-8 -*-
 
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
 
matplotlib.rcParams['font.family']='SimHei'
matplotlib.rcParams['font.sans-serif']=['SimHei']

#定义绘制雷达图函数
'''
nAttr:数组元素个数
data:绘图数组
strTilte:雷达图标题
strFilename:保存文件名
'''
def myPlotRadar(nAttr,data,strTilte,strFilename):
    angels = np.linspace(0,2*np.pi,nAttr,endpoint=False)
    data  = np.concatenate((data,[data[0]]))
    angels = np.concatenate((angels,[angels[0]]))     
    plt.figure(facecolor='white')
    plt.subplot(111,polar=True)
    plt.plot(angels,data,'bo-',color='g',linewidth=2)
    plt.fill(angels,data,facecolor='g',alpha=0.25)
    plt.thetagrids(angels*180/np.pi,labels)
    plt.figtext(0.52,0.95,strTilte,ha='center')
    plt.grid(True)
    plt.savefig(strFilename)
    plt.show()   
    
#A1-5:总体雷达图
labels = np.array(['A1:基础设施','A2:信息资源','A3:应用服务',
                   'A4:网络安全','A5:保障体系'])
nAttr = 5
data = np.array([5.5,7.05,6.1,8.27,8.47])
strTilte = '西安电力高等专科学校2023年数字校园对标评估分析'
strFilename = 'radar_All.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename)

#A1:基础设施
labels = np.array(['A1.1:校园网络','A1.2:数据中心','A1.3:教学环境'])
nAttr = 3
data = np.array([5.67,7.0,4.9])
strTilte = '西安电力高等专科学校-A1:基础设施'
strFilename = 'radar_A1.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

#A2:信息资源
labels = np.array(['A2.1:数据资源','A2.2:教学资源','A2.3:资源管理'])
nAttr = 3
data = np.array([5.0,7.58,6.67])
strTilte = '西安电力高等专科学校-A2:信息资源'
strFilename = 'radar_A2.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

#A3:应用服务
labels = np.array(['A3.1:基础平台','A3.2:教学应用','A3.3:教学评价',
                   'A3.4:管理服务'])
nAttr = 4
data = np.array([5.0,7,6.67,5.5])
strTilte = '西安电力高等专科学校-A3:应用服务'
strFilename = 'radar_A3.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

#A4:网络安全
labels = np.array(['A4.1:基础设施安全','A4.2:信息系统安全','A4.3:终端安全',
                   'A4.4:数据安全','A4.5:内容安全','A4.6:安全管理'])
nAttr = 6
data = np.array([10.0,10,8,5.5,10,8])
strTilte = '西安电力高等专科学校-A4:网络安全'
strFilename = 'radar_A4.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

#A5:保障体系
labels = np.array(['A5.1:组织机构','A5.2:人员队伍','A5.3:规章制度',
                   'A5.4:经费保障'])
nAttr = 4
data = np.array([8.67,7.2,7.5,8.33])
strTilte = '西安电力高等专科学校-A5:保障体系'
strFilename = 'radar_A5.jpg'
myPlotRadar(nAttr,data,strTilte,strFilename) 

 【参考文献】嵩天,礼欣,黄天羽著,python语言程序设计基础(第2版)[M],北京:高等教育出版社,2020.2

【参考链接】https://blog.csdn.net/weixin_44940191/article/details/126910761

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强heaven

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值