雷达图(Radar Chart),也被称为蛛网图或星型图,是一种用于可视化多个变量之间关系的图表形式。
雷达图是一种显示多变量数据的图形方法。通常从同一中心点开始等角度间隔地射出三个以上的轴,每个轴代表一个定量变量,各轴上的点依次连接成线或几何图形。

雷达图可以用来在变量间进行对比,或者查看变量中有没有异常值。
雷达图中每个轴的相对位置和角度通常是无信息的。每个变量都具有自己的轴,彼此间的距离相等,所有轴都有相同的刻度。
在将数据映射到这些轴上时,需要注意预先对数值进行标准化处理,保证各个轴之间的数值比例能够做同级别的比较。

1. 主要元素

雷达图的主要元素包括:

  1. 坐标轴:每个变量对应一个射线或轴线,从中心点向外延伸。射线的长度或角度表示该变量的值大小或比例。
  2. 数据点:在每个射线上,根据变量的值确定相应的数据点或标记点的位置。
  3. 雷达链:连接各个数据点或标记点形成的多边形或区域,用于表示多个变量之间的关系。
  4. 区域范围:雷达链所连接的区域,面积大小代表各个数据综合的结果。

2. 适用的场景

雷达图适用的分析场景包括:

  • 比较综合表现:比较多个实体(如产品、团队、个人等)在多个指标上的表现,帮助决策者了解它们之间的差异和相对优劣。
  • 评估绩效和目标:帮助评估绩效和目标达成情况,从而指导后续决策和改进措施。
  • 变量之间的关系趋势:直观地发现多个变量之间的关系和趋势,例如某个变量的增长是否会导致其他变量的变化。
  • 强调优势和劣势:凸显实体在某些指标上的优势和劣势,有助于决策者更好地了解实体的特点和优势所在。

3. 不适用的场景

雷达图不适用的分析场景有:

  • 无序数据:如果数据是无序的,无法明确确定各个变量之间的相对位置和关系,雷达图的效果会大打折扣。
  • 数据缺失:如果某些变量的数据缺失或不完整,将导致雷达图无法准确地展示各个变量之间的关系和差异。
  • 多个并行路径:当存在多个并行路径时,例如多个团队或产品之间的比较,雷达图可能无法清晰地展示它们之间的差异和相对优劣。

4. 分析实战

本次通过雷达图来分析下王者荣耀KPL联盟几位选手的比赛数据。

4.1. 数据来源

数据来自王者荣耀官网(2023年春季赛数据),整理好的数据可以从下面下载:
https://databook.top/wzry/2023-spring

使用其中的文件:player-2023春季赛.csv

fp = "d:/share/data/player-2023春季赛.csv"

df = pd.read_csv(fp)
df

4.2. 数据清理

选手的数据一共有125条,本来想按胜率选择最高的4位选手,发现胜率高的选手很多只参加了1,2场比赛。
所以选择参加比赛最多6位选手来分析。

data = df.sort_values("比赛场次", ascending=False)
data = data.iloc[:6]
data

选择每位选手下列5个属性来绘制雷达图:

  1. 经济占比
  2. 伤害占比
  3. 承伤占比
  4. 推塔占比
  5. 参团率
filter_cols = ["选手", "经济占比", "伤害占比", "承伤占比", "推塔占比", "参团率"]
data = data.loc[:, filter_cols]
data

将百分比数据转为数值类型:

for col in filter_cols[1:]:
data[col] = data[col].str.replace("%", "", regex=False)
data[col] = data[col].astype("float") data

4.3. 分析结果可视化

绘制6位选手的雷达图:

N = 5 # 雷达图属性个数
angles = np.linspace(0, 2 * np.pi, N, endpoint=False)
angles = np.concatenate((angles, [angles[0]])) fig = plt.figure(figsize=[10, 6])
for i in range(len(data)):
values = data.iloc[i, 1:].tolist()
values.append(values[0]) position = "23" + str(i + 1)
ax = fig.add_subplot(int(position), polar=True)
ax.plot(angles, values, "o-")
ax.fill(angles, values, alpha=0.4)
ax.set_thetagrids(angles[:-1] * 180 / np.pi,
data.columns[1:].tolist())
ax.set_title(data.iloc[i, 0], color="b")
ax.set_ylim(0, 100) plt.subplots_adjust(hspace=0.5)

参赛最多的6位选手,5位都是佛山DRG的队员,说明他们的首发阵容很稳定。
5个属性连接起来的面积,看起来还是射手打野的比较大,C位果然还是得看这两个位置。

【matplotlib 实战】--雷达图的更多相关文章

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

    雷达图常用于对多项指标的全面分析.例如:HR想要比较两个应聘者的综合素质,用雷达图分别画出来,就可以进行直观的比较. 用Matplotlib画雷达图需要使用极坐标体系,可点击此链接,查看对极坐标体系的 ...

  2. [python] 基于matplotlib实现雷达图的绘制

    雷达图(也称为蜘蛛图或星形图)是一种可视化视图,用于使用一致的比例尺显示三个或更多维度上的多元数据.并非每个人都是雷达图的忠实拥护者,但我认为雷达图能够以视觉上吸引人的方式比较不同类别各个特征的值.本 ...

  3. python+matplotlib制作雷达图3例分析和pandas读取csv操作

    1.例一 图1 代码1 #第1步:导出模块 import numpy as np import matplotlib.pyplot as plt from matplotlib import font ...

  4. matplotlib雷达图

    用matplotlib画雷达图,网上流传的版本其实都是官网的一个例子.但是那个例子太复杂,而且它封装了几个类,让人难以一眼看出其本质. 我给出一个简单的解决方法,没有任何封装.作本文的原因,是为了回答 ...

  5. matplotlib 雷达图2

    说明 搞了一个最新版本的雷达图,比以前那个美观. 不多说,代码奉上: 完整代码 ''' matplotlib雷达图 ''' import numpy as np import matplotlib.p ...

  6. 数据可视化基础专题(十二):Matplotlib 基础(四)常用图表(二)气泡图、堆叠图、雷达图、饼图、

    1 气泡图 气泡图和上面的散点图非常类似,只是点的大小不一样,而且是通过参数 s 来进行控制的,多的不说,还是看个示例: 例子一: import matplotlib.pyplot as plt im ...

  7. HTML5 Canvas制作雷达图实战

    雷达图又叫蜘蛛网图,是一种对各项数据查看很明显的表现图,在很多游戏中,对游戏中的每个角色的分析图一般也用这种图. 下面,用HTML5的Cavas来实现雷达图. 效果 一.创建Canvas var mW ...

  8. matplotlib常见图表绘制——极坐标图-雷达图、极轴图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:斑点鱼 极坐标轴 调用subplot()创建子图时通过设置proje ...

  9. Web 前端实战(三):雷达图

    前言 在<Canvas 线性图形(五):多边形>实现了绘制多边形的函数.本篇文章将记录如何绘制雷达图.最终实现的效果是这样的: 绘制雷达图 雷达图里外层 如动图中所示,雷达图从里到外一共有 ...

  10. Web 前端实战:雷达图

    前言 在Canvas 线性图形(五):多边形实现了绘制多边形的函数.本篇文章将记录如何绘制雷达图.最终实现的效果是这样的: 绘制雷达图 雷达图里外层 如动图中所示,雷达图从里到外一共有 6 层,所以, ...

随机推荐

  1. Maven-Could not calculate build plan错误解决方法

    报错如图: 报错情况: 可以创建简单的maven项目例子,但是无法创建web的maven项目 解决方法: 1.安装maven插件后,c盘下会生成.m2文件夹 .m2\repository\org\ap ...

  2. ASP.NET 6 使用工作单元操作 MongoDB

    大家好,我是Edison. 最近工作中需要用到MongoDB的事务操作,因此参考了一些资料封装了一个小的组件,提供基础的CRUD Repository基类 和 UnitOfWork工作单元模式.今天, ...

  3. 大白话讲讲 Go 语言的 sync.Map(二)

    上一篇文章 <大白话讲讲 Go 语言的 sync.Map(一)> 讲到 entry 数据结构,原因是 Go 语言标准库的 map 不是线程安全的,通过加一层抽象回避这个问题. 当一个 ke ...

  4. ip2location.py

    import re import geoip2.database from tabulate import tabulate from matplotlib import pyplot as plt ...

  5. javascript中的垃圾回收机制的一些知识记录

    调用栈中的数据是如何回收的 原始类型的数据会分配到栈中 引用类型的数据会被分配到堆中 在执行代码的过程中,如果遇到了一个函数,js引擎会创建该函数的执行上下文,并将该函数的上下文压入调用栈中,与此同时 ...

  6. JDBC:使用IDEA配置JDBC

    IDEA使用Jar包 操作流程 步骤1:创建lib路径 步骤2:复制jar包 步骤3:必须要做的一步 参考链接 https://blog.csdn.net/upup1006/article/detai ...

  7. 王道oj/problem17

    网址:http:oj.lgwenda.com/problem17 思路:指针其实就是存储地址的一个空间,LinkList=LNode* 代码: #define _CRT_SECURE_NO_WARNI ...

  8. [db2]数据备份与还原

    前言 备份还原db2数据库一般有两种方式,一种是使用db2 backup + db2 restore,另一种是db2move + db2look.前者备份的数据库文件不能使用后者的方式进行还原. 实例 ...

  9. struct(C# 参考)

    struct 类型是一种值类型,通常用来封装小型相关变量组,例如,矩形的坐标或库存商品的特征. 下面的示例显示了一个简单的结构声明. 1 public struct Book 2 { 3 public ...

  10. 一文了解 history 和 react-router 的实现原理

    我们是袋鼠云数栈 UED 团队,致力于打造优秀的一站式数据中台产品.我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值. 本文作者:霜序 前言 在前一篇文章中,我们详细的说了 react-r ...