首页 > 解决方案 > 在ggplot中制作多直方图,不识别分组

问题描述

我正在尝试制作一堆直方图(或岭图),以便我可以比较观察中某些时间点的分布。

我将此来源用于直方图并将其用于山脊图。但是,我无法弄清楚如何设置我的代码以按周制作每个长度(L)的堆叠直方图,以便我可以看到不同周的 L 分布。我已经尝试了 ggplot 中的填充选项(在示例中似乎会在几周内产生自动颜色差异,因为它在 aes() 中?)和其他使用 y= 参数的“堆栈”,但没有取得太大成功,我认为由于我的数据设置方式。如果有人可以帮助我弄清楚如何按周制作多个直方图,那将很有用!

谢谢!

#fake data
L = rnorm(100, mean=10, sd=2)
t = c((rep.int(7,10)), (rep.int(14,20)), rep.int(21,30), rep.int(28,20), (rep.int(31, 20)), (rep.int(36,10)))
fake = data.frame(cbind(L,t))

#subset data into weeks for convenience
dayofweek = seq(7,120,7)
fake2 = as.data.frame(subset(fake, t %in% dayofweek))
fake2$week <- floor(fake2$t/7)

#Plots, basic code
ggplot(fake2, aes(x=L, fill=week)) +
  geom_histogram()

示例 ggplot 输出

标签: rggplot2

解决方案


我之前尝试过 facet_grid,但由于某种原因, facet_wrap 实际上至少正确分离了图形,并且神奇地使颜色填充起作用:

ggplot(fake2, aes(x=L, fill = week)) +
  geom_histogram()+
  facet_wrap(.~week)

在此处输入图像描述


推荐阅读