R语言ggplot绘制dbRDA双标图自定义变量标签的方法咨询
解决方案
你不需要修改原始数据的变量名,仅需在绘图环节给存储变量载荷的df2新增一列自定义显示标签即可,操作步骤如下:
- 先构建变量名映射向量,key为原始变量名,value为你需要展示的自定义标签,仅需要修改的变量写入即可,不需要修改的变量会自动保留原始命名
# 按需增减映射条目即可 var_label_map <- c( "sedge" = "Sedge abundance", "ph" = "土壤pH", "lat" = "纬度", "long" = "经度", "elevationcm" = "海拔(cm)", "peatdepth" = "泥炭深度", "calluna" = "石楠属丰度", "moss" = "苔藓丰度", "sphag" = "泥炭藓丰度" )
- 筛选完显著变量后,给
df2新增自定义标签列
# 你原本的显著变量筛选逻辑 test2<-na.omit(test2) df2$p<-as.numeric(test2$`Pr(>F)`) df2<-subset(df2, p < 0.05) # 新增自定义标签列(两种方法二选一即可) # 方法1:dplyr实现 df2$plot_label <- dplyr::recode(rownames(df2), !!!var_label_map) # 方法2:base R实现,不需要额外加载包 df2$plot_label <- var_label_map[rownames(df2)] df2$plot_label[is.na(df2$plot_label)] <- rownames(df2)[is.na(df2$plot_label)]
- 修改
geom_text的标签映射规则
rda.biplot <- rda.plot + geom_segment(data=df2, aes(x=0, xend=CAP1, y=0, yend=CAP2), color="black", arrow=arrow(length=unit(0.01,"npc"))) + geom_text(data=df2, # 把原本的label=rownames(df2)替换为新增的plot_label列 aes(x=CAP1,y=CAP2,label=plot_label, hjust=0.5*(1-sign(CAP1)),vjust=0.5*(1-sign(CAP2))), color="black", size=4.5) rda.biplot
以上修改完全不影响上游分析和其他配套脚本的运行,仅在绘图输出环节替换显示标签。
内容的提问来源于stack exchange,提问作者2xw
相关产品推荐
相关产品推荐

