如何缩小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
相关产品推荐
相关产品推荐

