R:按条件和平均图叠加密度图
R: Overlay density plots by condition and by average plot
我能够使用提供的代码创建显示的两个密度图。我希望做的是创建一个结合两者的图表。本质上,我想将黑线覆盖在按条件着色的图的顶部。
d1 <- ggplot(df, aes(x=a)) + geom_density()
d2 <- ggdensity(biolReps, x = "a", color = "b",fill = "b"
这就是你想要的吗?我在这里使用 after_stat
来缩小条件密度图,使其低于总密度。 (根据定义,尖峰密度较小,峰密度往往低于条件密度。)
ggplot(mtcars) +
geom_density(aes(mpg)) +
geom_density(aes(mpg, after_stat(count) * 0.01,
group = cyl, fill = as.character(cyl)), alpha = 0.2)
如果你想把它转换成一个函数,你可以使用类似下面的东西。 {{ }}
或“拥抱”运算符用于将变量名称转发到函数的环境中。更多内容在 https://rlang.r-lib.org/reference/topic-data-mask-programming.html#embrace-with-
plot_densities <- function(df, var, group) {
ggplot(df) +
geom_density(aes( {{ var }} )) +
geom_density(aes( {{ var }}, after_stat(count) * 0.01,
group = {{ group }},
fill = as.character( {{ group }} )), alpha = 0.2)
}
plot_densities(mtcars, mpg, cyl)
我能够使用提供的代码创建显示的两个密度图。我希望做的是创建一个结合两者的图表。本质上,我想将黑线覆盖在按条件着色的图的顶部。
d1 <- ggplot(df, aes(x=a)) + geom_density()
d2 <- ggdensity(biolReps, x = "a", color = "b",fill = "b"
这就是你想要的吗?我在这里使用 after_stat
来缩小条件密度图,使其低于总密度。 (根据定义,尖峰密度较小,峰密度往往低于条件密度。)
ggplot(mtcars) +
geom_density(aes(mpg)) +
geom_density(aes(mpg, after_stat(count) * 0.01,
group = cyl, fill = as.character(cyl)), alpha = 0.2)
如果你想把它转换成一个函数,你可以使用类似下面的东西。 {{ }}
或“拥抱”运算符用于将变量名称转发到函数的环境中。更多内容在 https://rlang.r-lib.org/reference/topic-data-mask-programming.html#embrace-with-
plot_densities <- function(df, var, group) {
ggplot(df) +
geom_density(aes( {{ var }} )) +
geom_density(aes( {{ var }}, after_stat(count) * 0.01,
group = {{ group }},
fill = as.character( {{ group }} )), alpha = 0.2)
}
plot_densities(mtcars, mpg, cyl)