ggplot中的条形图没有按因子分组

时间:2012-10-05 19:09:53

标签: r ggplot2

我正在尝试在ggplot2中绘制一个条形图,其中每个因子都得到观察的平均值。然而,情节是整个人口的平均值,并没有按要素分组/分组,这就是我想要的

这是图表: enter image description here

当我计算群体的平均值时,存在差异,这就是我想要绘制的。

  US      Foreign
1 89.76   124.02

以下是数据框中整个列的平均值

mean(clients$OrderSize)
[1] 96.71

这是数据帧的结构。我将CountryType作为一个因素,因为这是我想要分组的:

str(clients)
'data.frame':   252774 obs. of  4 variables:
$ ClientID     : Factor w/ 252774 levels "58187855","59210128",..: 19 20 21 22 23 24 25 26 27 28 ...
$ Country      : Factor w/ 207 levels "Afghanistan",..: 196 60 139 196 196 40 40 196 196 196 ...
$ CountryType  : Factor w/ 2 levels "Foreign","US": 2 1 1 2 2 1 1 2 2 2 ...
$ OrderSize    : num  12.95 21.99 5.00 7.50 44.5 ...

这是我的电话:

ggplot(data = clients, aes(x=CountryType, y=mean(OrderSize))) + geom_bar() + ylab("")

我尝试将CountryType设置为没有运气的因素:

ggplot(data = clients, aes(x=factor(CountryType), y=mean(OrderSize))) + geom_bar() + ylab("")

在致电ggplot之前,我是否需要预先计算两组的均值?或者我错过了哪些内容?

1 个答案:

答案 0 :(得分:4)

尝试更像这样的事情:

dat <- data.frame(x = rep(letters[1:2],each = 25),y = 1:50)
ggplot(dat,aes(x = x,y = y)) + 
    stat_summary(fun.y = mean,geom = "bar")

enter image description here

作为一般说明,请避免像aes(y = value)这样的惯用语,其中value是单个值,而不是数据框中列的名称。这并不是打算如何使用 ggplot2 。 (虽然在某些情况下可以打破所有规则......)