2016-08-31 1 views
2

Mein Datensatz enthält mehrere kategorische Variablen, die ich visualisieren möchte, um die Verteilung zu sehen.So zeichnen Sie mehrere kategoriale Variablen in R

Zum Beispiel, wenn ich die 4 Variablen (Hersteller, trans, fl, Klasse) in der mpg Datensatz in ggplot2 sichtbar zu machen wollte, ich habe 4 Zeilen Code schreiben:

ggplot(mpg, aes(manufacturer)) + geom_bar() + coord_flip() 
ggplot(mpg, aes(trans)) + geom_bar() + coord_flip() 
ggplot(mpg, aes(fl)) + geom_bar() + coord_flip() 
ggplot(mpg, aes(class)) + geom_bar() + coord_flip() 

Resultierenden BarPlot :

enter image description here

Wie kann ich einen Code schreiben, diese effizienter zu machen? Schleife? Funktion anwenden? Ich würde gerne jedes Diagramm einzeln sehen, wenn möglich.

Antwort

3

Ihre Idee, lapply zu verwenden, ist eine Lösung.

Dies erfordert aes_string statt aes verwendet werden.

Einzel Plots

Dies schafft einzelne Parzellen pro Spalte (Name), die Sie als erstes Argument zu lapply liefern:

lapply(c("manufacturer", "trans", "fl", "class"), 
    function(col) { 
    ggplot(mpg, aes_string(col)) + geom_bar() + coord_flip() 
    }) 

Kombinierte Plots

Wenn erforderlich, dass Sie alle Parzellen auf Ein Zeichenbereich, den Sie verwenden können miscset::ggplotGrid:

library(miscset) # install from CRAN if required 
ggplotGrid(ncol = 2, 
    lapply(c("manufacturer", "trans", "fl", "class"), 
    function(col) { 
     ggplot(mpg, aes_string(col)) + geom_bar() + coord_flip() 
    })) 

Das Ergebnis sieht so aus:

enter image description here

+0

Das ist fantastisch! Danke für die schnelle Antwort @setempler. Gibt es eine Möglichkeit, die Bars nach Anzahl zu sortieren? – rishi

+0

@rishi Ja, hier beschrieben: http://stackoverflow.com/questions/5208679/order-bars-in-gplot2-bar-graph - Antwort von Alex Brown – setempler

+0

@setempler Können wir die Werte für jeden Graphen und die Anwendung der Farbe für jeden Balken? danke. – user7462639

Verwandte Themen