ggplot2连续条形图有多个因素

时间:2014-03-15 00:58:37

标签: r ggplot2 bar-chart continuous

我将使用ggplot2包标配的钻石数据集来说明我正在寻找的东西。

我想构建一个如下图:

library(ggplot2)
ggplot(diamonds, aes(clarity, fill=cut)) + geom_bar(position="dodge")

但是,我想要返回连续变量的平均值而不是计数。我想返回切割和颜色,得到平均克拉。如果我输入此代码:

ggplot(diamonds, aes(carat, fill=cut)) + geom_bar(position="dodge")

我的输出是克拉数与切割次数的计数。

任何人都知道怎么做?

1 个答案:

答案 0 :(得分:1)

您可以获得mean(carat)cutcolor分组的新数据框,然后绘制:

library(plyr)
data <- ddply(diamonds, .(cut, color), summarise, mean_carat = mean(carat))
ggplot(data, aes(color, mean_carat,fill=cut))+geom_bar(stat="identity", position="dodge")

enter image description here

如果您想要更快的解决方案,可以使用dplyrdata.table

使用dplyr

library(dplyr)
data <- group_by(diamonds, cut, color)%.%summarise(mean_carat=mean(carat)) 

使用data.table

library(data.table)
data <- data.table(diamonds)[,list(mean_carat=mean(carat)), by=c('cut', 'color')]

两者的情节代码相同。