GGally::ggpairs绘图:空白下半区如何显示轴与变量标签
解决GGally::ggpairs下半部分空白时轴标签缺失的问题
我之前也碰到过这个情况——把ggpairs的下半部分设为空白后,轴标签跟着消失了,挺头疼的。咱们可以通过自定义下半部分的绘图函数来解决,既保持空白效果,又能保留轴标签。
修改后的代码
library(ggplot2) library(GGally) data(iris) # 自定义一个仅保留轴标签的空白绘图函数 lower_blank_with_labels <- function(data, mapping, ...) { ggplot(data = data, mapping = mapping) + geom_blank() + # 不绘制任何图形元素 theme( axis.text = element_text(), axis.title = element_text(), panel.background = element_blank(), panel.grid = element_blank() ) } # 绘制矩阵图 ggpairs(iris, columns = 1:4, diag = "blank", upper = list(continuous = wrap("points", colour = "#e0f3f8", size = 1)), lower = list(continuous = lower_blank_with_labels)) + ggplot2::theme_dark()
代码解释
- 自定义lower函数:
lower_blank_with_labels函数创建了一个空的ggplot对象,只保留轴文本和标题,同时把面板背景、网格都设为空白,确保下半部分看起来完全是空的,但轴标签不会消失。 - 适配主题样式:因为你用了
theme_dark(),函数里没有硬编码文字颜色,会自动继承深色主题的文字样式,保证标签在深色背景下清晰可见。 - 替换lower参数:把原来的
wrap("blank")换成我们自定义的函数,这样下半部分的子图就会显示轴标签,同时没有任何绘图内容。
如果想调整轴标签的大小、颜色,直接在自定义函数的theme里修改axis.text和axis.title的参数就行,比如axis.text = element_text(size = 10, color = "white")。
内容的提问来源于stack exchange,提问作者Lucy Wheeler
相关产品推荐
相关产品推荐

