ggplot + geom_bar的y值未正确显示

时间:2011-11-29 20:06:18

标签: r ggplot2

我在ggplots冒险使用babysteps,需要一些帮助来解决以下问题! 我有dataframe名为dftemp,其结构如下

   Year Month Values
1   1996   Jan      0
2   1996   Feb      0
3   1996   Mar      0
4   1996   Apr      0
5   1996   May      0
6   1996   Jun      0
7   1996   Jul      0
8   1996   Aug      0
9   1996   Sep      0
10  1996   Oct      0
11  1996   Nov      0
12  1996   Dec      0

这样做会一直持续到:

181 2011   Jan     -3
182 2011   Feb      2
183 2011   Mar      2
184 2011   Apr      6
185 2011   May    -13
186 2011   Jun     -4
187 2011   Jul      0
188 2011   Aug      0
189 2011   Sep      0
190 2011   Oct     -7
191 2011   Nov     -7
192 2011   Dec      0

我试图通过以下方式制作一个条形图:

ggplot(dftemp,aes(x=Month,y=Values,fill=Year))+geom_bar(binwidth=10)

得到一些奇怪和错误的东西(遗憾的是我的声誉不够高,所以我无法发布图像)..得到的情节有y值,在y轴的底部非常紧密地挤压在一起.. < / p>

我不明白我在做错了什么!我尝试将factor()放在aes输入面前,但无济于事!

1 个答案:

答案 0 :(得分:1)

您的第一个挑战是在geom_bar中使用stat =“identity”参数

目前尚不清楚您要绘制的内容,或者您​​计划如何合并数据,因此我会提供一些选项。

首先让我们重建您的数据以供使用:

library(chron)
tt = seq(chron("1/1/1996"),chron("12/31/2011"),by="months")
dftemp = as.data.frame()
dftemp$datestamps = tt
dftemp$years = years(tt)
dftemp$months = months(tt)
dftemp$values = round(runif(length(tt),-15,15))

这是一个简单的条形图,每个日期标记一个条:

ggplot(dftemp,aes(x=datestamps,y=values))+geom_bar(stat="identity",position="dodge")

每月一个酒吧,堆积

ggplot(dftemp,aes(x=months,y=values))+geom_bar(stat="identity")

每年一个酒吧,堆积

ggplot(dftemp,aes(x=years,y=values))+geom_bar(stat="identity")