Matplotlib学习---用matplotlib画雷达图(radar chart)

雷达图常用于对多项指标的全面分析。例如:HR想要比较两个应聘者的综合素质,用雷达图分别画出来,就可以进行直观的比较。

 

用Matplotlib画雷达图需要使用极坐标体系,可点击此链接,查看对极坐标体系的介绍:https://www.cnblogs.com/kallan/p/6738577.html

 

下面,我们从五个方面(编程能力,沟通技能,专业知识,团队协作,工具掌握)来对路人甲和路人乙进行比较。

 

代码如下:

复制代码
import numpy as np
from matplotlib import pyplot as plt
fig=plt.figure(figsize=(10,5))
ax1=fig.add_subplot(1,2,1,polar=True) #设置第一个坐标轴为极坐标体系
ax2=fig.add_subplot(1,2,2,polar=True) #设置第二个坐标轴为极坐标体系
fig.subplots_adjust(wspace=0.4) #设置子图间的间距,为子图宽度的40%

p1={"编程能力":60,"沟通技能":70,"专业知识":65,"团体协作":75,"工具掌握":80} #创建第一个人的数据
p2={"编程能力":70,"沟通技能":60,"专业知识":75,"团体协作":65,"工具掌握":70} #创建第二个人的数据

data1=np.array([i for i in p1.values()]).astype(int) #提取第一个人的信息
data2=np.array([i for i in p2.values()]).astype(int) #提取第二个人的信息
label=np.array([j for j in p1.keys()]) #提取标签

angle = np.linspace(0, 2*np.pi, len(data1), endpoint=False) #data里有几个数据,就把整圆360°分成几份
angles = np.concatenate((angle, [angle[0]])) #增加第一个angle到所有angle里,以实现闭合
data1 = np.concatenate((data1, [data1[0]])) #增加第一个人的第一个data到第一个人所有的data里,以实现闭合
data2 = np.concatenate((data2, [data2[0]])) #增加第二个人的第一个data到第二个人所有的data里,以实现闭合

#设置第一个坐标轴
ax1.set_thetagrids(angles*180/np.pi, label, fontproperties="Microsoft Yahei") #设置网格标签
ax1.plot(angles,data1,"o-")
ax1.set_theta_zero_location('NW') #设置极坐标0°位置
ax1.set_rlim(0,100) #设置显示的极径范围
ax1.fill(angles,data1,facecolor='g', alpha=0.2) #填充颜色
ax1.set_rlabel_position('255') #设置极径标签位置
ax1.set_title("路人甲",fontproperties="SimHei",fontsize=16) #设置标题

#设置第二个坐标轴
ax2.set_thetagrids(angles*180/np.pi, label, fontproperties="Microsoft Yahei") #设置网格标签
ax2.plot(angles,data2,"o-")
ax2.set_theta_zero_location('NW') #设置极坐标0°位置
ax2.set_rlim(0,100) #设置显示的极径范围
ax2.fill(angles,data2,facecolor='g', alpha=0.2) #填充颜色
ax2.set_rlabel_position('255') #设置极径标签位置
ax2.set_title("路人乙",fontproperties="SimHei",fontsize=16) #设置标题

plt.show()
复制代码

 

图像如下:

 

posted @   HuZihu  阅读(7584)  评论(3编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示