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

使用radarchart绘制雷达图时数值显示异常问题求助

R语言雷达图数值位置偏移问题的解决方法

问题根源

你用的是fmsb包的radarchart函数,当前代码里的axistype=1会强制把坐标轴起始刻度设为0,但你的数据设定的最小值是4、最大值是16。这就导致图表刻度范围被拉到0-16,而你的观测值是基于4-16的区间,数值位置自然会被压缩偏移,出现和实际值不符的情况。另外你设置的caxislabels=seq(0,16,4)虽然刻度显示正确,但和数据的实际区间不匹配,进一步加剧了视觉误差。

修正方案

核心是让坐标轴范围匹配你设定的min/max(4-16),把axistype参数改为2:

  • axistype=2的逻辑是:坐标轴从数据框第二行的最小值开始,到第一行的最大值结束,刻度会自动对齐你的数据区间,观测值位置就能和实际数值完全对应。

完整修正代码

library(fmsb)

# 你的原始数据
df <- structure(list(Acceptance = c(16, 4, 13), `Committed Action` = c(16, 
4, 11), Diffusion = c(16, 4, 7), `Present Moment` = c(16, 4, 
10), `Self as Context` = c(16, 4, 11), Values = c(16, 4, 12)), row.names = c(NA, 
-3L), class = c("tbl_df", "tbl", "data.frame"))

# 修正后的雷达图绘制代码
radarchart(df, axistype=2,  # 关键调整:匹配数据的min/max区间
           # 自定义多边形样式
           pcol=rgb(0.2,0.5,0.5,0.9), pfcol=rgb(0.2,0.5,0.5,0.5), plwd=4, 
           # 自定义网格样式
           cglcol="grey", cglty=1, axislabcol="grey", caxislabels=seq(4,16,4),  # 刻度改为4-16,和数据一致
           cglwd=0.8,
           # 自定义标签大小
           vlcex=0.8 
)

补充说明

调整后,雷达图的刻度会从4开始,每间隔4到16结束,你观测到的Diffusion=7、Values=12等数值会准确对应到图中的位置,不会再出现偏移问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 02:56:25