Mi rendo conto che è vecchio, ma forse questa funzione ho creato è utile a qualcuno là fuori:
order_axis<-function(data, axis, column)
{
# for interactivity with ggplot2
arguments <- as.list(match.call())
col <- eval(arguments$column, data)
ax <- eval(arguments$axis, data)
# evaluated factors
a<-reorder(with(data, ax),
with(data, col))
#new_data
df<-cbind.data.frame(data)
# define new var
within(df,
do.call("<-",list(paste0(as.character(arguments$axis),"_o"), a)))
}
Ora, con questa funzione è possibile tracciare in modo interattivo con ggplot2, così:
ggplot(order_axis(df, AXIS_X, COLUMN_Y),
aes(x = AXIS_X_o, y = COLUMN_Y)) +
geom_bar(stat = "identity")
Come si può vedere, loLa funzionecrea un altro dataframe con una nuova colonna denominata uguale ma con un _o
alla fine. Questa nuova colonna ha livelli in ordine crescente, quindi ggplot2 traccia automaticamente in tale ordine.
Questo è un po 'limitato (funziona solo per caratteri o combinazioni di fattori e numerici di colonne e in ordine ascendente) ma lo trovo ancora molto utile per il tracciamento in movimento.
Sono scioccato questa risposta non ha più upvotes, il 90% del tempo questo è il modo corretto di farlo. – Gregor
Penso che sia il richiamo dei fattori sia superfluo. Esiste un richiamo implicito al fattore per il primo argomento e si suppone che il secondo argomento sia numerico. –