@Edward 评论中的帖子中的解决方案适用于mtcars
. 下面的代码片段复制了您上面的情节,并添加了一条黄土线:
library(ggplot2)
library(GGally)
View(mtcars)
# make a function to plot generic data with points and a loess line
my_fn <- function(data, mapping, method="loess", ...){
p <- ggplot(data = data, mapping = mapping) +
geom_point() +
geom_smooth(method=method, ...)
p
}
# call ggpairs, using mtcars as data, and plotting continuous variables using my_fn
ggpairs(mtcars, lower = list(continuous = my_fn))
在您的代码段中,第二个参数lower
有一个ggplot
传递给它的对象,但它需要一个list
具有特定命名元素的对象,它指定如何处理特定的变量类型。列表中的元素可以是函数或字符向量(但不是ggplot
对象)。从ggpairs
文档中:
upper 和 lower 是可能包含变量 'continuous'、'combo'、'discrete' 和 'na' 的列表。列表的每个元素可以是一个函数或一个字符串。如果提供了字符串,则它必须实现以下选项之一:
连续恰好是('points','smooth','smooth_loess','density','cor','blank')之一。此选项用于连续 X 和 Y 数据。
恰好组合('box','box_no_facet','dot','dot_no_facet','facethist','facetdensity','denstrip','blank')之一。此选项用于连续 X 和分类 Y 数据或分类 X 和连续 Y 数据。
恰好离散('facetbar','ratio','blank')之一。此选项用于分类 X 和 Y 数据。
na 恰好是 ('na', 'blank') 之一。当所有 X 数据为 NA、所有 Y 数据为 NA 或所有 X 或 Y 数据均为 NA 时使用此选项。
我的代码片段起作用的原因是因为我已经传递了一个list
to lower
,其中一个名为“连续”的元素是my_fn
(它生成了一个ggplot
)。