Ho visto molte domande (spesso collegate a Order Bars in ggplot2 bar graph) su come riordinare le categorie in un grafico a barre.ggplot bar plot con ordine di categorie facet-dipendente
Quello che sto cercando è solo un tocco diverso, ma non ho trovato un buon modo per farlo: ho un grafico a barre sfaccettato, e voglio ordinare l'asse x per ogni sfaccettatura in modo indipendente, secondo ad un'altra variabile (nel mio caso, quella variabile è solo il valore y stesso, cioè voglio solo che le barre vadano ad aumentare di lunghezza in ogni sfaccettatura).
Semplice esempio, seguito per es. Order Bars in ggplot2 bar graph:
df <- data.frame(name=c('foo','bar','foo','bar'),period=c('old','old','recent','recent'),val=c(1.23,2.17,4.15,3.65))
p = ggplot(data = df, aes(x = reorder(name, val), y = val))
p = p + geom_bar(stat='identity')
p = p + facet_grid(~period)
p
Quello che otteniamo è la seguente:
Mentre quello che voglio è:
Oh mio Dio! Stai scrivendo un seguito a * How to Lie with Statistics *? – John
L'unico modo per farlo sarebbe quello di creare grafici separati e usare 'grid.arrange' dal pacchetto' gridExtra'. Ma sono d'accordo sul fatto che in genere non si traduce in una trama molto bella. (Lo troverai molto in ggplot, se qualcosa è davvero difficile da fare, probabilmente è perché sta cercando di impedirti di fare qualcosa di stupido.Non sempre, ma molto ...) – joran
Sì, grazie, non super utile, ma grazie comunque. Nel contesto in cui lo stiamo usando, è una trama importante e l'ordine delle categorie è molto deliberato. Qui ho riportato questo esempio a un esempio minimo, ma nella nostra applicazione, ordiniamo una dozzina di segnali in funzione della loro additività realizzata, e il fatto che le barre vadano dappertutto in qualche aspetto sarebbe inaccettabile. –