使用如何在 ggplot 中重现 smoothScatter 的异常值绘图中的想法?, R - 平滑颜色并将图例添加到散点图中,以及如何使用 GGally::ggpairs 中的 loess 方法使用 wrap 函数,您可以定义自己的函数以传递给 ggpairs。
my_fn <- function(data, mapping, ...){
p <- ggplot(data = data, mapping = mapping) +
stat_density2d(aes(fill=..density..), geom="tile", contour = FALSE) +
scale_fill_gradientn(colours=rainbow(100))
p
}
ggpairs(dat, lower=list(continuous=my_fn))
编辑
来自评论:您如何在对角线中添加直方图并在相关值中删除“Corr:”?
您可以设置diag
onal 和upper
arguments。因此,要添加直方图(假设您的意思是geom_histogram
),您可以使用diag=list(continuous=wrap("barDiag", binwidth=100))
并完全删除相关性upper=list(continuous="blank")
。如果您想实际删除文本*corr:*
,则需要定义一个新函数 - 请参阅Change colours in ggpairs now that params is deprecated 中cor_fun
的函数。
所以你的情节变成
ggpairs(dat, lower=list(continuous=my_fn),
diag=list(continuous=wrap("barDiag", binwidth=100)),
upper=list(continuous=wrap(cor_fun, sz=10, stars=FALSE))
)
编辑
来自评论:你如何像在 OP 中那样为对角直方图着色?
要着色,只需将相关参数添加到barDiag
函数中,在本例中为fill
和colour
。那么diag
将是
diag=list(continuous=wrap("barDiag", binwidth=100, fill="brown", col="black"))
(fill
给出主要颜色,并col
给出颜色来勾勒条形)