Skip to main content
 首页 » 编程设计

R语言创建雷达图

2022年07月19日181webabcd

雷达图,也称蜘蛛图,可以同时展示多个变量的数量对比情况。本文利用fmsb库创建雷达图。

数据准备

要创建雷达图,数据需要满足一些约定:

  • 需要展示在图上的每个变量需要有对应的数据列
  • 第一行必须包含最大值
  • 第二行必须包含最小值
  • 第三及之后的行包含需要在雷达图上展示的数据

为了演示,下面代码的数据框包含每天光顾门店的客户数量信息。准备好数据之后,利用fmsb库的radarchart()函数创建雷达图:

#create data 
df <- data.frame(Mon=c(100, 0, 34, 25), 
                 Tue=c(100, 0, 48, 55), 
                 Wed=c(100, 0, 58, 46), 
                 Thu=c(100, 0, 67, 67), 
                 Fri=c(100, 0, 55, 49), 
                 Sat=c(100, 0, 29, 30), 
                 Sun=c(100, 0, 18, 20)) 
                   
#view data 
df 
#   Mon Tue Wed Thu Fri Sat Sun 
# 1 100 100 100 100 100 100 100 
# 2   0   0   0   0   0   0   0 
# 3  34  48  58  67  55  29  18 
# 4  25  55  46  67  49  30  20 
 
library(fmsb) 
 
radarchart(df) 

在这里插入图片描述

自定义雷达图

可以使用下列参数自定义雷达图:

  • pcol: 线调颜色
  • pfcol: 填充颜色
  • plwd : 线宽度
  • cglcol: 网络颜色
  • cglty: 网络线条类型
  • axislabcol: 轴标签颜色
  • caxislabels: 展示轴标签向量
  • cglwd: 网络线条宽度
  • vlcex: 分组标签大小

下面代码展示使用一些参数创建自定义雷达图:

areas <- c(rgb(1, 0, 0, 0.25), 
           rgb(0, 1, 0, 0.25), 
           rgb(0, 0, 1, 0.25)) 
 
radarchart(df, 
    axistype=1,  
    pcol='blue', 
    # pfcol=rgb(0.3,0.8,0.5,0.5), 
    pfcol=areas, 
    plwd=1,  
    cglcol='grey', 
    cglty=1, 
    axislabcol='black', 
    cglwd=0.6, 
    vlcex=1.2, 
    title='Customers per Day' 
    ) 
 
 
legend(x=1.5, y=1, legend = rownames(df[-c(1,2),]), bty = "n", pch=20 , col=areas, 
       text.col = "grey", cex=1.2, pt.cex=3) 

在这里插入图片描述

rgb 函数的语法说明:

rgb(red, green, blue, alpha, names = NULL, maxColorValue = 1)

详细文档说明参见官网


本文参考链接:https://blog.csdn.net/neweastsun/article/details/121915334
阅读延展