Ich versuche reorder
in einem facet-Wrapped-Diagramm zu verwenden, das auch scales = free_x
in ggplot2 verwendet, aber die Reorder-Funktion ist nicht richtig umordnen der X-Achse. Hier ist, was ich laufen:R: Reorder facet_wrapped x-Achse mit free_x in ggplot2
library(ggplot2)
df <- read.table("speaking_distribution_by_play.txt",
header = F,
sep = "\t")
ggplot(df, aes(x=reorder(V2, V3), y=V3)) +
geom_bar(stat = "identity") +
facet_wrap(~V1, ncol = 4, scales = "free_x") +
opts(title = "Distribution of Speakers in Shakespearean Drama") +
xlab("Speaking Role") +
ylab("Words Spoken") +
opts(axis.text.x=theme_text(angle=90, hjust=1))
ausgeführt wird, der Code auf dem Datenrahmen gelesen von this tab-separated file ergibt sich ein Plot, in dem die x-Achse jedes facettierten Grundstück ist nur teilweise geordnet. Someone else on SO fragte eine sehr ähnliche Frage, aber die einzige vorgeschlagene Lösung war, Raster anzuordnen. Da mein Datensatz jedoch ein wenig größer ist als der Datensatz in dieser Frage, ist dies keine besonders schnelle Operation. Daher wollte ich fragen: Gibt es eine Möglichkeit, die x-Achse jedes facettierten Diagramms neu anzuordnen? um die Balken in zunehmender (oder abnehmender) Reihenfolge der Größe zu zeigen? Ich wäre sehr dankbar für jede Hilfe, die andere in dieser Frage anbieten können.
Whoa ... 'opts' veraltet ist seit 2012 ich, es ist Zeit, die Sie Ihre' ggplot2' Paket aktualisiert denken. Ihr erstes 'opts()' mit dem Titel kann dann durch 'labs()' ersetzt werden (und Ihr 'xlab' und' ylab' können hineingehen), und Ihr zweites 'opts' wird durch ein' theme() ersetzt '. – Gregor
Danke, Gregor! Irgendwelche Gedanken zur Nachbestellungsfrage? – duhaime
Wenn Sie verschiedene Aufträge in verschiedenen Facetten wünschen, denke ich, dass 'grid.arrange' Ihre beste Wahl ist. – Gregor