ggpairs,按组颜色但单一回归线
ggpairs, color by group but single regression line
给定以下 ggpairs 绘图:
data(iris)
ggpairs(iris[1:4],
lower=list(
mapping = aes(color=iris$Species),
continuous = wrap("points", size=0.7)
)
)
这导致:
如何将单个回归线添加到每个散点图,而不像添加 continuous = wrap("smooth")
时那样将回归线也映射到分组?
我希望这些点按组着色,但 x 和 y 变量之间关系的回归线整体。
我不知道在哪里放置 aes 映射,因此它只影响 'points' 而不是 'smooth'。
如果您想要这样的专用图,您需要创建自己的函数。它必须采用特定格式,采用 data
、mapping
和 ...
参数,并根据这些创建一个 ggplot:
library(GGally)
my_func <- function(data, mapping, ...) {
ggplot(data, mapping) +
geom_point(size = 0.7) +
geom_smooth(formula = y~x, method = loess, color = "black")
}
ggpairs(iris[1:4],
lower=list(
mapping = aes(color=iris$Species),
continuous = my_func
)
)
如果您正在寻找直线回归线,则只需适当修改 my_func
。例如,
my_func <- function(data, mapping, ...) {
ggplot(data, mapping) +
geom_point(size = 0.7) +
geom_smooth(formula = y~x, method = lm, color = "black", se = FALSE,
linetype = 2)
}
给你:
给定以下 ggpairs 绘图:
data(iris)
ggpairs(iris[1:4],
lower=list(
mapping = aes(color=iris$Species),
continuous = wrap("points", size=0.7)
)
)
这导致:
如何将单个回归线添加到每个散点图,而不像添加 continuous = wrap("smooth")
时那样将回归线也映射到分组?
我希望这些点按组着色,但 x 和 y 变量之间关系的回归线整体。
我不知道在哪里放置 aes 映射,因此它只影响 'points' 而不是 'smooth'。
如果您想要这样的专用图,您需要创建自己的函数。它必须采用特定格式,采用 data
、mapping
和 ...
参数,并根据这些创建一个 ggplot:
library(GGally)
my_func <- function(data, mapping, ...) {
ggplot(data, mapping) +
geom_point(size = 0.7) +
geom_smooth(formula = y~x, method = loess, color = "black")
}
ggpairs(iris[1:4],
lower=list(
mapping = aes(color=iris$Species),
continuous = my_func
)
)
如果您正在寻找直线回归线,则只需适当修改 my_func
。例如,
my_func <- function(data, mapping, ...) {
ggplot(data, mapping) +
geom_point(size = 0.7) +
geom_smooth(formula = y~x, method = lm, color = "black", se = FALSE,
linetype = 2)
}
给你: