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

如何缩小R语言radarchart标题与图表间距并去除上下空白?

解决radarchart标题间距与上下空白问题

1. 让标题贴近图表

radarchart自带的title参数默认通过固定行高添加标题,导致间距偏大。可以直接弃用该参数,改用mtext()手动控制标题的垂直位置:

  • 移除radarchart()中的title参数
  • 在绘制每个雷达图后,用mtext()添加标题,通过line参数调整行高(数值越小,标题越贴近图表)

2. 去除上下空白区域

通过调整par()的边距参数,缩小雷达图周围的空白:

  • 使用mar参数(顺序为:下、左、上、右),减小上下边距的数值
  • 若需要更精准的控制,可改用mai参数(以英寸为单位定义边距)

修改后的完整代码

radar_data <- data.frame(
  RMSEA = c(0.00974, 1.000, 0.998),
  CFI =   c(0.17202, 0.773, 0.659),
  TLI =   c(0.03231, 0.996, 0.988)
)

rownames(radar_data) <- c("iv_ri_clpm", "heise", "starts")
radar_data <- rbind(rep(1,3) , rep(0,3) , radar_data)

# 保存原始绘图参数,避免后续冲突
opar <- par(no.readonly = TRUE)
# 设置1行3列布局,同时缩小边距
par(mfrow = c(1,3), mar = c(1, 1, 2, 1))

for (i in 3:nrow(radar_data)) {
  radarchart(
    radar_data[c(1:3, i), ],
    pfcol = c("#99999980",NA), axistype = 1, 
    cglcol = "grey", cglty = 1, cglwd = 0.8,
    axislabcol = "black", 
    pcol= c(NA,2), plty = 1, plwd = 2, 
    caxislabels = c(0, 0.25, 0.5, 0.75, 1)
  )
  # 手动添加标题,line=0.5让标题贴近图表
  mtext(row.names(radar_data)[i], side = 3, line = 0.5, cex = 1, font = 2)
}

# 恢复原始绘图参数
par(opar)

关键说明

  • mar = c(1,1,2,1):将上下边距从默认的4.1分别缩小到1和2,大幅减少上下空白
  • mtext(..., line=0.5):默认line值为2,降低后标题会紧贴雷达图顶部
  • 若需要极致紧凑,可将mar替换为mai = c(0.2, 0.2, 0.3, 0.2),以英寸为单位精准控制边距

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 05:44:57