修改ggpairs对角线绘图:设置空白无效的问题求助
解决ggpairs对角线无法设为空白的问题
我懂你遇到的这个麻烦——ggpairs的对角线绘图总是顽固地显示密度曲线,明明已经尝试指定diag = list(continuous = "blank")却不管用对吧?问题出在你用的"blank"并不是GGally包能识别的内置绘图函数名,得换一种正确的方式来指定空白对角线。
这里有两种可靠的解决方案:
方案一:使用GGally内置的空白对角线函数
GGally本身提供了blankDiag函数专门用来生成空白对角线,直接在参数里指定它就行:
library(GGally) library(ggplot2) ggpairs(data = df, columns = 1:3, diag = list(continuous = GGally::blankDiag), # 指定用blankDiag生成空白 title = "APD pool", mapping = ggplot2::aes(colour = Irradiated))
如果你的数据里同时有离散型变量,记得把discrete也加上:
diag = list(continuous = GGally::blankDiag, discrete = GGally::blankDiag)
方案二:自定义空白绘图函数
如果第一种方案不生效,你可以自己写一个返回空ggplot图层的函数,强制让对角线区域空白:
# 定义一个返回空图的函数 empty_diag_plot <- function(data, mapping, ...) { ggplot(data, mapping) + geom_blank() } # 应用到ggpairs中 ggpairs(data = df, columns = 1:3, diag = list(continuous = empty_diag_plot), title = "APD pool", mapping = ggplot2::aes(colour = Irradiated))
这样应该就能彻底把对角线的密度曲线去掉,变成空白区域了。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

