2014-11-06 15 views
8

Mam te dane:Obiekty tabeli plot z ggplot?

  No Yes 
Female 411 130 
Male 435 124 

który został stworzony przy użyciu standardowego polecenia stołowego. Teraz z działki mogę wykreślić ten jako taki:

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

a następnie wyprowadza wykres słupkowy 2x2.

Moje pytanie brzmi: jak mogę to zrobić za pomocą ggplot2? Czy jest jakiś sposób na przekształcenie obiektu tabeli w ramkę danych? Zrobiłbym to, ale staje się bałagan i trzeba zmienić nazwę kolumny i nagłówków wierszy, a to staje się bałaganem, co jest naprawdę prostą rzeczą?

Odpowiedz

14

Coś

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

dostaje podobny wykres z minimalną ilością poszukiwana nowych etykiet.

3

ggplot2 działa z ramką danych, więc trzeba przekształcić tabelę w ramkę. Oto przykładowy kod:

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

Teraz można użyć myFrame w ggplot2:

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

zobaczyć Coerce to a Data Frame aby uzyskać więcej informacji.