在ggplot中制作多直方图,不识别分组

Posted

技术标签:

【中文标题】在ggplot中制作多直方图,不识别分组【英文标题】:Making multi-histogram in ggplot, not recognizing grouping 【发布时间】:2021-08-03 03:53:12 【问题描述】:

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

I used this source for the histogram,and this for the ridge plots。 但是,我无法弄清楚如何设置我的代码以按周制作每个长度(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()

【问题讨论】:

sn_sz_week 变量是什么? 请通过定义所有变量来确保您的示例是可重现的。当您说它“不起作用”时,您能否更具体地说明您期望输出的样子? 啊抱歉,我没有切换隐藏在一行中的真实数据变量。它现在读取定义的假数据集。我还将发布一个我看到的与我需要的示例 【参考方案1】:

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

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

【讨论】:

以上是关于在ggplot中制作多直方图,不识别分组的主要内容,如果未能解决你的问题,请参考以下文章

在ggplot2中分别标准化多面直方图

ggplot中分组/计数/数据的直方图

R语言ggplot2可视化:可视化堆叠的直方图在bin中的每个分组部分添加数值标签为堆叠直方图中的每个分组部分添加数值标签

ggplot2中具有分组密度线的直方图

R语言使用ggplot2包的快速可视化函数qplot绘制分组直方图(分组颜色设置)实战

R语言ggplot2可视化:可视化堆叠的直方图添加每个分组的每个bin的计数标签在堆叠直方图的bin中的每个分组部分添加数值标签