当前位置: 首页 > news >正文

【雷达图】R语言绘制雷达图(ggradar),NBA季后赛数据为例

雷达图简介

雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。轴的相对位置和角度通常是无信息的。 雷达图也称为网络图,蜘蛛图,星图,蜘蛛网图,不规则多边形,极坐标图或Kiviat图。它相当于平行坐标图,轴径向排列。

像六边形战士就是说的马龙的力量、速度、技巧、发球、防守、经验六个方面的六维雷达图是六边形的。
在这里插入图片描述

ggradar介绍

我们将用ggradar这个包来绘制雷达图。从名字就可以看出来,它是基于ggplotradar图。

安装

devtools::install_github("ricardo-bion/ggradar", dependencies = TRUE)

导入

library(ggradar)
library(dplyr)
library(scales)
library(tibble)

mtcars数据集为例

mtcars数据是数据摘自 1974 年美国汽车趋势杂志,包括 32 辆汽车(1973-74 年车型)的油耗和汽车设计和性能等 10 个方面。

mtcars_radar <- mtcars %>% 
  as_tibble(rownames = "group") %>% 
  mutate_at(vars(-group), rescale) %>% 
  tail(4) %>% 
  select(1:10)

ggradar(mtcars_radar)

mtcars的雷达图
上面这个例子是这个包的作者给的样例,下面再用我们自己的数据试试。

2021-2022nba季后赛球员数据为例

数据描述

数据就长这样:

平均得分平均篮板平均助攻场均时间场上效率值投篮三分球罚球进攻篮板防守篮板抢断盖帽失误犯规
Giannis Antetokounmpo31.714.26.837.334.349.12267.92.2120.71.34.53.6
Luka Doncic31.79.86.436.831.545.534.5770.79.11.80.63.92.9
Nikola Jokic3113.25.834.237.857.527.884.83.49.81.614.84
Jimmy Butler27.47.44.63729.850.633.884.12.44.92.10.61.51.5
Stephen Curry27.45.25.934.725.745.939.782.90.54.71.30.42.62.7
Ja Morant27.189.837.629.9443474.71.46.620.43.62.4
Brandon Ingram276.26.239.324.847.540.7830.75.50.70.33.81.8
Kevin Durant26.35.86.34420.538.633.389.50.55.310.35.33.8
Jayson Tatum25.66.76.24123.742.639.38015.71.20.94.2

画图代码

nba_radar <- nba %>% 
  as_tibble(rownames = "name") %>% 
  mutate_at(vars(-name), rescale) %>% 
  filter(name=="Luka Doncic" |name=="Stephen Curry"|name=="Kevin Durant"|name=="Kyrie Irving"|name=="James Harden") %>%
  select(c(1:4,8:9,12:14))
ggradar(nba_radar)

代码说明

首先是这个符号%>%,这个符号是R语言中的管道符号,是将前一步的结果直接传递到后一步,节省了内存和代码量。
如果不用的话,上面的代码就是写成:

nba_radar <- nba
nba_radar <- as_tibble(nba_radar,rownames = "name")
nba_radar <- mutate_at(nba_radar,vars(-name), rescale)
nba_radar <- filter(nba_radar,name=="Luka Doncic" |name=="Stephen Curry"|name=="Kevin Durant"|name=="Kyrie Irving"|name=="James Harden")
nba_radar <- select(nba_radar,c(1:4,8:9,12:14))
ggradar(nba_radar)

然后就是as_tibble这个,这个是一种比较新的数据类型tibbletibble是R语言中一个用来替换data.frame类型的扩展的数据框,tibble继承了data.frame,是弱类型的,同时与data.frame有相同的语法,使用起来更方便。tibble包,也是由Hadley开发的R包。

tibble对data.frame做了重新的设定:

tibble,不关心输入类型,可存储任意类型,包括list类型
tibble,没有行名设置 row.names
tibble,支持任意的列名
tibble,会自动添加列名
tibble,类型只能回收长度为1的输入
tibble,会懒加载参数,并按顺序运行
tibble,是tbl_df类型

这是他们的官方网页tibble官网

接着就是mutate_at(vars(-name), rescale)这个我觉得是标准化的意思。

之后大家换成其他数据的时候,就把第一列作为名字就行,然后改一改上面代码的rownames参数就行。
NBA

相关文章:

  • 机器学习笔记 - 在QT/PyTorch/C++ 中加载 TORCHSCRIPT 模型
  • redis 技术分享
  • 怎么让面试官喜欢你?
  • 深度学习模型理解-CNN-手写数据字代码
  • C# ZBar解码测试(QRCode、一维码条码)并记录里面隐藏的坑
  • 【技术美术图形部分】图形渲染管线3.0-光栅化和像素处理阶段
  • css:一个容器(页面),里面有两个div左右摆放并且高度和容器高度一致,左div不会随着页面左右伸缩而变化,右div随页面左右伸缩宽度自适应(手写)
  • Kubernetes 1.25 集群搭建
  • 【每周CV论文推荐】GAN在医学图像生成与增强中的典型应用
  • python毕业设计项目源码选题(16)跳蚤市场二手物品交易系统毕业设计毕设作品开题报告开题答辩PPT
  • C# 连接 SqlServer 数据库
  • 【408计算机组成原理】—进位计数制(二)
  • 拆解一下汽车电子软件开发工具链
  • 2021年华中杯数学建模挑战赛B题技术问答社区重复问题识别求解全过程文档及程序
  • 【云原生 | 32】Docker运行数据采集和分析引擎Elasticsearch
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • Android单元测试 - 几个重要问题
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JS学习笔记——闭包
  • nginx 负载服务器优化
  • nodejs实现webservice问题总结
  • vue--为什么data属性必须是一个函数
  • 基于游标的分页接口实现
  • 自定义函数
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • ​TypeScript都不会用,也敢说会前端?
  • #、%和$符号在OGNL表达式中经常出现
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (12)Hive调优——count distinct去重优化
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C语言)字符分类函数
  • (rabbitmq的高级特性)消息可靠性
  • (二)Linux——Linux常用指令
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • ***监测系统的构建(chkrootkit )
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net wcf memory gates checking failed
  • .net开发时的诡异问题,button的onclick事件无效
  • .Net小白的大学四年,内含面经
  • /etc/sudoers (root权限管理)
  • @ConfigurationProperties注解对数据的自动封装
  • [2021 蓝帽杯] One Pointer PHP
  • [Angular] 笔记 7:模块
  • [BZOJ1060][ZJOI2007]时态同步 树形dp
  • [C/C++随笔] char与unsigned char区别
  • [C++] Windows中字符串函数的种类
  • [Django 0-1] Core.Email 模块
  • [Dxperience.8.*]报表预览控件PrintControl设置
  • [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c
  • [FUNC]判断窗口在哪一个屏幕上