ggpairs绘图自定义:不同面板个性化样式设置求助
解决方案
以下是适配你需求的修改后代码,针对每个自定义点都做了对应调整:
library(ggplot2) library(GGally) # 自定义右上相关系数面板函数 custom_cor <- function(data, mapping, ...) { ggally_cor(data, mapping, ...) + theme( panel.background = element_rect(fill = "white", color = NA), panel.grid = element_blank(), axis.text = element_blank(), axis.ticks = element_blank() ) + geom_text( aes(label = after_stat(label)), color = "black", # 设置"Corr:"文本为黑色 hjust = 0.5, vjust = 0.5, # 文本居中对齐 size = 5 ) } # 构建ggpairs绘图 p <- ggpairs( data = mydata, mapping = aes(color = de.novo, fill = de.novo), columns = c("rmsd", "pLDDT (AF2)", "ipTM (AF2)", "iPAE (AF2)"), upper = list( continuous = custom_cor # 使用自定义的cor面板 ), lower = list( continuous = wrap("points", size = 0.2, alpha = 0.25) ), diag = list( continuous = wrap("densityDiag", alpha = 0.5) ) )+ scale_fill_manual(values = c("#3E049CFF", "#C03A83FF", "#FCD225FF")) + scale_color_manual(values = c("#3E049CFF", "#C03A83FF", "#FCD225FF")) + theme_bw() + theme( panel.grid.minor.x = element_blank(), panel.border = element_blank(), # 仅保留左侧和下侧轴边框 axis.line.x.bottom = element_line(color = "black", linewidth = 1), axis.line.y.left = element_line(color = "black", linewidth = 1), axis.title.y = element_text(size = 29.5, vjust = 2.5), axis.title.x = element_text(size = 29.5, vjust = -0.1), axis.text.y.left = element_text(color = "black", size = 23), axis.text.x.bottom= element_text(color = "black", size = 23), axis.ticks.y.left = element_line(linewidth=1.6, color = "black"), axis.ticks.length.y.left = unit(0.18, "cm"), axis.ticks.x.bottom = element_line(linewidth=1.6, color = "black"), axis.ticks.length.x.bottom = unit(0.18, "cm"), strip.text.x = element_text(size = 23, color = "black"), strip.text.y = element_text(size = 23, color = "black"), strip.background = element_rect(color="black", fill="white", size=1.5, linetype="solid"), plot.margin = margin(22,16,7,10, "points") ) print(p)
关键修改说明
右上相关系数面板优化
- 白色背景+无网格线:通过自定义
custom_cor函数,在面板内设置panel.background = element_rect(fill = "white")和panel.grid = element_blank(),直接覆盖默认的灰色背景和网格。 - "Corr:"文本改为黑色:在自定义函数中用
geom_text指定color = "black",替换默认的灰色文本。 - 文本居中对齐:设置
hjust = 0.5和vjust = 0.5,让相关系数文本在面板中央显示,解决偏移问题。
下侧散点图与对角密度图轴边框调整
- 先将全局
panel.border设为element_blank(),然后单独启用axis.line.x.bottom和axis.line.y.left,仅保留左侧和下侧的轴边框,自动隐藏顶部和右侧边框。
内容的提问来源于stack exchange,提问作者Cobalamin
相关产品推荐
相关产品推荐

