• 【雷达图】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

  • 相关阅读:
    【C++STL基础入门】list交换、翻转,排序、合并和拼接操作
    C++进阶篇5-哈希
    Linux: Error: EACCES: permission denied Linux 解决方法
    redis内存描述
    VMware虚拟机ubuntu网络配置以及ifconfig命令
    关联通达信自动化交易接口的代码分享
    C++ Reference: Standard C++ Library reference: C Library: cstdio: fputs
    Mysql存储过程与存储函数
    自动监测站主要设备介绍(​​​​​​​雨水情遥测终端机)
    【漏洞复现】用友政务财务系统 FileDownload 任意文件读取漏洞
  • 原文地址:https://blog.csdn.net/dream_of_grass/article/details/127114199