Ggplot:geom_bar生成“胖”列

时间:2016-05-24 12:20:11

标签: r pipe bar-chart

我有:

> myData
      esito cella
43575     R     1
42446     R     1
49653     R     1
65053     R     4
72893     R     4
58299     R     4
61609     R     4
65377     R     4
70783     R     4
71949     R     4
65939     R     4
60434     R     4

然后我想绘制它们,以便在x轴上获得(1,2,3,4)和在y轴上获得元素的数量。例如,由于我在位置1中有3个元素,我希望条形与x = 1的高度3相关,等等。总结, 我希望:

  1. x = 1 - >高度为3的酒吧
  2. x = 2 - >没有吧
  3. x = 3 - >没有吧
  4. x = 4 - >高度为9的酒吧
  5. 所以我写道:

    myData %>% 
      group_by(cella) %>%
      dplyr::mutate(n =n()) %>%
      unique() %>% 
      ggplot(., aes(x= cella, y=n), col="blue") + 
      geom_bar(stat='identity', fill='purple', colour="white") + #, position='dodge'
      ggtitle("Riggio rules")+
      xlab("X")+
      ylab("number")
    

    结果:

    enter image description here

    所以我获得了两个酒吧,但是太大了。 如果我将+ xlim(c(0, 4))添加到ggplot中,它会绘制......没有!

    编辑:

    > dput(myData)
    structure(list(esito = structure(c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 
    3L, 3L, 3L, 3L, 3L), .Label = c("B", "P", "R"), class = "factor"), 
        cella = c(1L, 1L, 1L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L)), .Names = c("esito", 
    "cella"), row.names = c(43575L, 42446L, 49653L, 65053L, 72893L, 
    58299L, 61609L, 65377L, 70783L, 71949L, 65939L, 60434L), class = "data.frame")
    

1 个答案:

答案 0 :(得分:3)

您可以使用width参数来控制肥胖。以下是width = 1

时的样子
myData %>% 
     group_by(cella) %>%
     dplyr::mutate(n =n()) %>%
     unique() %>% 
     ggplot(., aes(x= cella, y=n), col="blue") + 
     geom_bar(stat='identity', fill='purple', colour="white", width = 1) + #, position='dodge'
     ggtitle("Riggio rules")+
     xlab("X")+
     ylab("number")

enter image description here