为什么这个R ggplot代码显示每年的聚合值?

时间:2014-11-28 20:55:00

标签: r ggplot2

我正在进行同行评审并尝试理解此代码。结果图似乎是正确的,但我无法弄清楚它是如何正确的。

在下面的例子中,tableA有超过28k的观察结果。我认为在绘制聚合之前需要首先进行聚合。所以,我期望的是4年中每一行都有4行的数据帧,而不是28k行。

以下是tableA的列,如果有帮助的话:

> names(tableA)
[1] "fips"      "SCC"       "Pollutant" "Emissions" "type"      "year"

以下是代码:

plot4 <- ggplot(tableA, aes(factor(year), Emissions/1000))+ geom_bar( stat = "identity")
print(plot4)

1 个答案:

答案 0 :(得分:0)

使用ggplot创建条形图时,默认为position="stacked",这意味着如果每个y的{​​{1}}值不止一个,则生成的条形图堆叠在顶部彼此的。由于您没有分组美学来区分条形,因此它们都是相同的填充颜色,总高度将是x的{​​{1}}之和。

以下是一个例子:

y

此行为更像是一个工件,而不是一个功能。 AFAIK用于汇总具有给定x值的多个y值的数据的惯用方法是使用x,如:

df <- data.frame(year=rep(2011:2014,each=5),emissions=1:20)
library(ggplot2)
ggplot(df,aes(x=factor(year),y=emissions)) + geom_bar(stat="identity")

这会产生与上面相同的图。