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

如何在ggpairs绘图中重命名分面的变量名称?

重命名ggpairs绘图分面名称的两种方法

原始代码与需求

你当前使用的绘图代码:

printVar = function(x,y){
  vals = cor.test(x,y,
                  method="spearman")[c("estimate","p.value")]
  names(vals) = c("rho","p")
  paste(names(vals),signif(unlist(vals),2),collapse="\n")
}

ggpairs(baseline_sbp, title=" ", 
        upper=list(continuous=wrap("statistic",text_fn=printVar,title=NULL, 
                                   sep=NULL  )    )   ) 

数据集:

baseline_sbp <- structure(list(delta_bp = c(-21.5, 7, -17.5, -10.5, -21, -7.5, 
4.5, 3, -9, 9, -22.5, -9.5), delta_bp_05 = c(-21.5, 0, 3, -13.5, 
-13, -4, -16.5, -8, 5, -5, -12, 0.5), delta_bp_10 = c(-26.5, 
1, -6, -10.5, -9, -3, -20.5, -10, 1, -6, -22, -0.5)), row.names = c(NA, 
-12L), class = c("tbl_df", "tbl", "data.frame"), na.action = structure(c(`17` = 17L, 
`27` = 27L, `32` = 32L), class = "omit"))

需求:将绘图分面中的“delta_bp”名称改为“dragon”。


方法一:直接修改数据框列名(最简单)

直接修改数据集的列名,绘图时会自动使用新名称作为分面标签,适合后续操作也需要用新名称的场景。

修改后的完整代码:

# 先修改数据框的列名,按顺序对应原列
colnames(baseline_sbp) <- c("dragon", "delta_bp_05", "delta_bp_10")

# 原绘图函数和代码保持不变
printVar = function(x,y){
  vals = cor.test(x,y,
                  method="spearman")[c("estimate","p.value")]
  names(vals) = c("rho","p")
  paste(names(vals),signif(unlist(vals),2),collapse="\n")
}

ggpairs(baseline_sbp, title=" ", 
        upper=list(continuous=wrap("statistic",text_fn=printVar,title=NULL, 
                                   sep=NULL  )    )   ) 

方法二:仅在绘图时修改标签(不改动原数据)

如果不想修改原始数据集,可以通过ggpairs的参数手动指定分面标签,只在绘图生效。

修改后的完整代码:

printVar = function(x,y){
  vals = cor.test(x,y,
                  method="spearman")[c("estimate","p.value")]
  names(vals) = c("rho","p")
  paste(names(vals),signif(unlist(vals),2),collapse="\n")
}

# 定义自定义标签,顺序要和数据框列的顺序完全一致
custom_labels <- c("dragon", "delta_bp_05", "delta_bp_10")

ggpairs(baseline_sbp, title=" ", 
        upper=list(continuous=wrap("statistic",text_fn=printVar,title=NULL, 
                                   sep=NULL  )),
        axisLabels = "manual",  # 开启手动标签模式
        columnLabels = custom_labels,  # 设置列分面标签
        rowLabels = custom_labels)  # 设置行分面标签(对称矩阵需一致)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 06:56:55