【发布时间】:2016-06-10 13:54:47
【问题描述】:
让我们以mpg 数据集为例,特别是class 和cyl 列。我可以看到每个 class 有多少条目,并根据 cyl 值区分填充颜色:
library(ggplot2)
p <- ggplot(mpg)
p <- p + geom_bar(mapping=aes(x=class, fill=factor(cyl)), position=position_dodge())
print(p)
不过,我希望看到的是 平均 条目数(每个 class),每个 cyl 的不同值。基本上,如果您查看上面的图,我希望每个班级有一个条形图,其高度应该是该班级彩色条形的平均高度。
我可以通过预处理数据框得到这个结果,例如:
df <- aggregate(formula=cyl~class, data=mpg, FUN=function(x) { length(x) / length(unique(x)) })
p <- ggplot(df)
p <- p + geom_bar(mapping=aes(x=class, y=cyl), stat='identity')
p <- p + ylab('average count')
这给了我想要的输出:
但是,鉴于 ggplot2 的强大功能,我想知道这是否可以通过 ggplot 函数实现。我想这涉及到使用特定的stat(可能使用group=cyl?),但我做不到。
【问题讨论】:
-
看看
stat_summarylink -
@user3631369 我现在正在玩它,但我没有得到结果。我无法聚合 cyl 字段。