直方图绘制了因子变量(Plot histograms over factor variables)

2019-08-16 21:38发布

我试图复制类似如下(最初发现图HERE )

这是概念上很简单,但我有点难倒就如何做到这一点的R.
总结:我想生成在一天24小时(24级因子变量)通过一周的每一天的行为频率直方图。 于是,我想,这样的行为在一天的时间分布可以很容易地比较(再次,见例子)堆叠在彼此顶部这些直方图。

例如,我的数据可能是这样的:

  weekday hour    count
  Tuesday   15      553
   Monday    1       53
   Monday   10      539
   Monday   15      629
  Tuesday    9      281
 Saturday    4       11
   Monday    3       20
   Sunday    3       10
   Sunday    7        2
   Sunday    2       17

我如何去在上面的链接实现的图形? 我最不善于用ggplot ,但有一种感觉,它是可能的解决方案。 谢谢!

Answer 1:

像这样的事情?

set.seed(1234)
df <- data.frame(weekday=rep(sort(unique(weekdays(.leap.seconds))), each=24), 
                       hour=rep(1:24, 7), count=sample(2:600, 24*7, replace=T))

df$weekday <- factor(df$weekday, levels=c("Monday", "Tuesday", "Wednesday", 
                      "Thursday", "Friday", "Saturday", "Sunday"), ordered=T)
df$hour <- factor(df$hour)

require(ggplot2)    
p <- ggplot(data = df, aes(x=hour)) 
p <- p + geom_histogram(aes(weights=count, fill=weekday))
p <- p + scale_fill_brewer(palette="Set3")
p <- p + facet_wrap( ~ weekday, ncol=1)
p



文章来源: Plot histograms over factor variables
标签: r ggplot2