So ändern Sie die Reihenfolge der Facettenbeschriftungen in ggplot (benutzerdefinierte Facettenumbruchbeschriftungen)

Hallo Ich habe ein Facettenplot mit ggplot in R gezeichnet und hier ist die Handlung

http://i.stack.imgur.com/5qXF1.png

Das Problem, das ich habe, ist, Die Facetten (Etiketten) sind alphabetisch sortiert (Bsp .: E1, E10, E11, E13, E2, E3, I1, I10, I2), aber ich brauche sie eine benutzerdefinierte Reihenfolge wie E1, I1, E2 , I2, E3, E10, I10, E11, E13.

Wie kann ich das machen ?

   

ggplot Sie sich nicht auf die Standardreihenfolge von Ebenen, die von factor() oder intern von ggplot wenn die von ggplot Gruppierungsvariable kein Faktor ist. Stellen Sie die Ebenen explizit selbst ein.

 dat < - data.frame(x = runif(100), y = runif(100), Group = gl(5, 20, labels = LETTERS[1:5])) head(dat) with(dat, levels(Group)) 

Was, wenn ich sie in dieser willkürlichen Reihenfolge haben möchte?

 set.seed(1) with(dat, sample(levels(Group))) 

Stellen Sie dazu die Ebenen so ein, wie Sie möchten.

 set.seed(1) # reset the seed so I get the random order form above dat < - within(dat, Group <- factor(Group, levels = sample(levels(Group)))) with(dat, levels(Group)) 

Jetzt können wir damit die Panels in der von uns gewünschten Reihenfolge zeichnen:

 require(ggplot2) p < - ggplot(dat, aes(x = x)) + geom_bar() p + facet_wrap( ~ Group) 

Was produziert:

Facetten eingewickelt

Ich arbeite gerade an einem ähnlichen Problem. Ich habe Ebenen, die standardmäßig so aussehen:

  [1] "A1" "A10" "A2" "A3" "A4" "A5" "A6" "A7" "A8" "A9" [11] "B1" "B2" "B3" "B4" "B5" "B6" "B7" "B8" "B9" 

Beachten Sie, dass die zweite Ebene aufgrund der alphabetischen Reihenfolge fehl am Platz ist.

Das mache ich, um die Bestellung zu reparieren:

 reorder(factor(fct), fct %>% str_replace("([[:alpha:]]+)", "\\1|") %>% str_split("\\|") %>% sapply(function(d) sprintf("%s%02d", d[1], as.integer(d[2]))), function(x) x[1]) 

Er ersetzt Ebenen wie “A1” mit “A01” und ordnet diese dann neu auf. Ich bin mir sicher, dass Sie das viel effizienter machen könnten, aber es macht den Job.

Es könnte angepasst werden, um das ursprüngliche Problem anzugehen.