Ich mag würde diese Daten mit ggplot plotten:ggplot facet_wrap mit spezifischer Reihenfolge der Variablen in jeder Facette
pl <- ggplot(df, aes(var2, value))
pl <- pl + geom_col()
pl <- pl + facet_wrap(~ var1, scales = "free")
pl
Die Reihenfolge des var2
auf:
library(ggplot2)
set.seed(0)
df <- data.frame(
var1 = rep(c("group1", "group2"), each = 3),
var2 = rep(letters[1:3], 2),
value = runif(6, 0, 10)
)
Die Handlung sollte so facettiert werden Die X-Achse sollte durch Erhöhen der Reihenfolge von value
bestimmt werden. Ich konnte diese Weise erreichen:
df$temp_var <- paste(df$var1, df$var2)
pl <- ggplot(df, aes(reorder(temp_var, value), value))
pl <- pl + geom_col()
pl <- pl + facet_wrap(~ var1, scales = "free")
pl
jedoch X-Achsenbeschriftungen a
werden soll, b
und c
. Normalerweise würde ich var2
in einen Faktor mit den Faktorstufen umwandeln, die die gewünschte Reihenfolge haben, aber in diesem Fall ist dies wahrscheinlich nicht möglich. Hat jemand Ideen, wie das gemacht werden kann? :)
Nizza, danke! Meine reellen Daten haben viele verschiedene Gruppen in 'var1' mit unterschiedlichen Zeichenlängen, so dass ich diese stattdessen benutzte:' scale_x_discrete (labels = setNames (as.character (df $ var2), df $ temp_var)) ' –
@JonSnow Ja, das ist die allgemeinere Lösung nehme ich an, habe die Antwort bearbeitet. – Axeman