【发布时间】:2019-09-25 14:17:50
【问题描述】:
我正在创建一个密度图并对其进行刻面。 假设我有 4 个变量组,使用该变量对其进行分面会生成 4 个密度图。
对于每个密度图,我画了一条代表平均值的垂直线。
但是,需要用眼睛观察 x 轴和垂直线的交点,才能大致了解平均值是多少。
我要为每个密度图创建,我还想在绘图区域中将其平均值显示为标签。
下面的示例代码
x <- rnorm(n = 100, mean = 10, sd = 1)
y <- rnorm(n = 100, mean = 20, sd = 1)
z <- rnorm(n = 100, mean = 40, sd = 1)
df <- as_tibble(cbind(
c(x,y,z),
c(rep('x',length(x)), rep('y',length(y)), rep('z',length(z))),
c(rep('a',length(x)/2), rep('b',length(x)/2))))
df$V1 <- as.numeric(df$V1)
df <- df %>% group_by(V2, V3) %>%
summarise(mumean = mean(V1)) %>%
right_join(df)
df %>%
ggplot(aes(x = V1, color = V2)) +
geom_density(aes(fill = V2)) + facet_grid(V3 ~ V2) + theme_bw() +
geom_vline(data = df, aes(xintercept = mumean))
【问题讨论】: