首页 > 解决方案 > ggplot:绘制平均值而不是计数

问题描述

我有以下样本数据,这些数据描述了duration我的问卷中的每个受访者需要多长时间( )回答每个问题(question)以及week回答问题的时间(同一问卷有几波)

n <- 100

data2 <- data.frame(
  question = paste("q", sample(1:3, n, replace = TRUE), sep=""),
  week = sample(1:3, n, replace = TRUE),
  duration = round(rnorm(n, mean = 15, sd = 5), 0)
)

ggplot(aes(x = week, fill=question), data = data2) + geom_bar(position='stack') +
xlab("Week")

但是我怎样才能用平均持续时间而不是计数(在 y 轴上)制作相同的图?

标签: rggplot2geom-bar

解决方案


stat_summary是为您进行计算的常用函数:

  ggplot(aes(x = week, y = duration, fill=question), data = data2) +
    stat_summary(fun=mean, geom="bar", position = "stack") +
    xlab("Week")

来自 stat_summary 的列

编辑:当我发现stat_图层可以做什么时,这改变了我的练习!揭秘 ggplot2 中的 stat_ 层


推荐阅读