首页 > 解决方案 > 使用 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

标签: rggplot2histogramfacet-wrap

解决方案


最好先将数据从宽到长重新整形,然后将fill美学添加到映射what(即x, y, z)到不同的填充颜色:

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

在此处输入图像描述


推荐阅读