2016-05-24 10 views
1

ich habe:Ggplot: geom_bar Herstellung von „Fett“ Spalten

> 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 

Dann plotten Ich will sie so, dass ich (1,2,3,4) auf der x-Achse und die Anzahl der erhalten Elemente auf der Y-Achse. Zum Beispiel, da ich 3 Elemente in der Position 1 ich die Bar bis x = 1 der Höhe 3 usw. Summieren, Ich würde erwarten, im Zusammenhang will:

  1. x = von 1 bis 3> bar mit der Höhe
  2. x = 2 -> keine Bar
  3. x = 3 -> keine Bar
  4. x = 4 -> bar mit der Höhe 9

So schreibe ich:

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") 

Es ergibt sich:

enter image description here

So erhalte ich zwei Bars, aber zu groß. Wenn ich + xlim(c(0, 4)) zum ggplot hinzufüge, plottet es ... nichts!

EDIT:

> 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") 
+0

ist x numerisch oder ein Faktor? – MLavoie

+0

Können Sie die Ausgabe von 'dput (myData)'? –

Antwort

3

können Sie die width Parameter verwenden, um die Fettigkeit zu steuern. Hier ist, wie es aussieht, wenn 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

+1

Wow, du hast mich um 50 Sekunden geschlagen ... schöner Vorschlag! –

+0

Es funktioniert perfekt! Ich weiß nicht, warum R manchmal versucht, unsere Absichten zu verstehen, anstatt das Einfachste zu tun. Wie auch immer, danke nochmal! –