如何绘制按年份分组的条形图组?

时间:2017-04-02 06:35:01

标签: r ggplot2

我想要绘制如下图所示的数据:

## Source: local data frame [6 x 3]
## Groups: year [?]
## 
##    year            helpnot count
##   <int>             <fctr> <int>
## 1  1975       Govt Do More   371
## 2  1975    Agree With Both   433
## 3  1975 Govt Does Too Much   245
## 4  2012       Govt Do More   199
## 5  2012    Agree With Both   530
## 6  2012 Govt Does Too Much   242

我希望x轴有所帮助,我想要为什么是实际的计数数。我希望X轴分为两组。我该怎么做呢?我有这个很接近...但是每年在每个酒吧的顶部和年份分组。我该如何解决这个问题?

这就是我所拥有的:

ggplot(data = helpnotComparison, aes(x=helpnot, y=count, fill = year)) +
   geom_bar(stat='identity')

这让我产生了这个:

enter image description here

更新

这很接近:

ggplot(data = helpnotComparison, aes(x=helpnot, y=count, group=year, fill=year)) +
+   geom_bar(position='dodge', stat="identity")

让我这样:

enter image description here

但是如何让年份标签位于底部?为什么当我只有2?时,右边的刻度显示4年?

1 个答案:

答案 0 :(得分:1)

开始
data$year <- as.factor(data$year)

你有4年的原因是因为它被解释为连续的。

这是你在找什么?

data <- data.frame(Year = c(rep("1975",3), rep("2010",3)),
                   helpnot = c("GDB","AWB", "GDT", "GDB", "AWB", "GDT"),
                               count = c(370, 430, 250, 200, 530, 250))
data

ggplot(data, aes(x  = helpnot, y = count, fill = Year)) + 
  geom_bar(stat = "identity", position = "dodge") + theme_minimal() +
  annotate("text", c(0.75,1.25,1.75,2.25,2.75,3.25), y = -15, 
           label = rep(c("1975","2010"),3), size = 2) +
guides(fill=FALSE)