2014-11-06 13 views
8

ich diese Daten habe:Plot Tabellenobjekte mit ggplot?

  No Yes 
Female 411 130 
Male 435 124 

, die die Standard-Tabelle Befehl erstellt wurde. Jetzt mit Grundstück kann ich das als solches Grundstück:

plot(table(df$gender, df$fraud))

und es gibt dann ein 2x2 Balkendiagramm.

Also meine Frage ist, wie kann ich das mit ggplot2 tun? Gibt es eine Möglichkeit, das Tabellenobjekt in einen Datenrahmen zu transformieren? Ich würde das tun, aber es wird ein Durcheinander und Sie müssen dann Spalten- und Zeilenköpfe umbenennen und es wird nur ein Durcheinander für das, was wirklich eine ziemlich einfache Sache ist?

Antwort

14

So etwas wie

ggplot(as.data.frame(table(df)), aes(x=gender, y = Freq, fill=fraud)) + geom_bar(stat="identity") 

erhält ein ähnliches Diagramm mit einer minimalen Menge von Relabeln.

3

ggplot2 arbeitet mit Datenrahmen, also müssen Sie Tabelle in einen Rahmen umwandeln. Hier ist ein Beispielcode:

myTable <- table(df$gender, df$fraud) 
myFrame <- as.data.frame(table(myTable)) 

Jetzt können Sie MyFrame in ggplot2 verwenden:

ggplot(myFrame, aes(x=gender))+ 
    geom_bar(y = Freq) 

siehe Coerce to a Data Frame für weitere Informationen.