2017-07-12 2 views
1

Das Folgende ist, wie meine Datenrahmen wie folgt aussieht:Kombinieren gruppierten und gestapeltes Balkendiagramm in R

CatA CatB CatC 
1  Y  A 
1  N  B 
1  Y  C 
2  Y  A 
3  N  B 
2  N  C 
3  Y  A 
4  Y  B 
4  N  C 
5  N  A 
5  Y  B 

I CatA auf der X-Achse, und seine Zählung auf Y-Achse haben wollen. Diese Grafik ist in Ordnung. Ich möchte jedoch eine Gruppe für CatB erstellen und sie mit CatC in der Y-Achse speichern. Dies ist, was ich habe versucht, und das ist, wie es aussieht:

enter image description here

Mein Code:

ggplot(data, aes(factor(data$catA), data$catB, fill = data$catC)) 
+ geom_bar(stat="identity", position = "stack") 
+ theme_bw() + facet_grid(~ data$catC) 

enter image description here

ich es so aussehen wollen PS: Es tut mir leid, Links zu Bildern zu geben, weil ich nicht in der Lage bin, sie hochzuladen, es gibt mir einen Fehler bei imgur, bei jedem Upload.

+0

Ihre 'ggplot' Code verschiedene Daten enthält, dann, was Sie oben geteilt. – mtoto

+0

Ich habe nur den Datensatz gekürzt und eine ungefähre Endkurve gezeichnet, wie er aussehen würde. Der Hauptpunkt ist, dass CatB gruppiert werden muss und C gestapelt werden muss, wobei CatA auf xaxis und seine Zählung auf Yaxis bleibt. Bin ich jetzt klar? – trollster

+0

können Sie Ihren Code in diesem Fall konsistent machen? – mtoto

Antwort

2

Sie könnten Facetten verwenden:

df <- data.frame(A = sample(1:5, 30, T), 
       B = sample(c('Y', 'N'), 30, T), 
       C = rep(LETTERS[1:3], 10)) 

ggplot(df) + geom_bar(aes(B, fill = C), position = 'stack', width = 0.9) + 
    facet_wrap(~A, nrow = 1) + theme(panel.spacing = unit(0, "lines")) 

enter image description here

+0

Das funktioniert wie ein Zauber. Nie neu über diese Facetten, viel einfacher zu tun mit dem gleichen. Vielen Dank, Kumpel! – trollster

Verwandte Themen