使用 facet_wrap 显示多个直方图

Show multiple histogram using facet_wrap

示例数据

df <- data.frame(id = rep(1:6, each = 50), x = rnorm(50*6, mean = 10, sd = 5), 
                                       y = rnorm(50*6, mean = 20, sd = 10), 
                                       z = rnorm(50*6, mean = 30, sd = 15))

ggplot(df, aes(x)) + geom_histogram() + facet_wrap(~id)

如何在同一图中为每个 id 以不同颜色显示 x、y、z

最好先将数据从宽改成长,然后将 fill 美学添加到映射 what(即 xyz) 到不同的填充颜色:

library(tidyverse)
df %>%
    gather(what, val, -id) %>%
    ggplot(aes(val, fill = what)) + geom_histogram() + facet_wrap(~id)