You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R语言中绘制方形雷达图而非菱形?fmsb库无法旋转图表

用fmsb绘制方形雷达图的解决方案

fmsb包的radarchart()默认生成菱形雷达图,核心原因是变量轴默认沿坐标轴方向(0°、90°等)排布。要生成方形雷达图,只需将变量轴的角度偏移45°,让每个轴指向正方形的四个顶点方向即可。

具体实现代码

# 设置随机种子保证结果可复现
set.seed(123)

# 创建数据
data_t <- as.data.frame(matrix(sample(2:20, 4, replace = T), ncol = 4))
colnames(data_t) <- c("math", "english", "biology", "music")
# 添加最大值和最小值行(fmsb要求的必填格式)
data_t <- rbind(rep(20, 4), rep(0, 4), data_t)

# 自定义变量轴角度:偏移π/4(45°),让轴指向正方形四个角
n_vars <- ncol(data_t)
custom_angles <- seq(pi/4, 2*pi + pi/4, length.out = n_vars)

# 绘制方形雷达图
radarchart(data_t, 
           axistype = 1,          # 显示坐标轴刻度
           angle = custom_angles, # 使用自定义角度
           pcol = "#0066CC",      # 数据折线颜色
           pfcol = scales::alpha("#0066CC", 0.3), # 数据区域填充色(半透明)
           plwd = 2,              # 折线宽度
           cglcol = "grey",       # 网格线颜色
           cglty = 1,             # 网格线类型
           axislabcol = "grey",   # 刻度标签颜色
           caxislabels = seq(0,20,5), # 刻度值区间
           cglwd = 0.8)           # 网格线宽度

原理说明

默认情况下,radarchart()会将n个变量的轴按seq(0, 2*pi - 2*pi/n, length.out = n)的角度排布,4个变量时正好对应x轴、y轴的正反向,最终形成菱形轮廓。将每个轴的角度偏移45°后,轴的方向变为45°、135°、225°、315°,此时绘制的雷达图网格和数据多边形都会呈现方形形态。

内容的提问来源于stack exchange,提问作者trilisser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 16:11:08