/ / Inversione dell'asse y in un singolo aspetto del ggplot - r, ggplot2

Inversione dell'asse y in un singolo aspetto del ggplot - r, ggplot2

Sto tracciando una serie di dati diversi misuratisugli stessi individui l'uno accanto all'altro in sfaccettature. Per alcuni tipi di dati un valore positivo è "buono" e per alcuni un valore negativo è "buono". Questi ultimi tipi di variabili vengono solitamente tracciati con assi y capovolti. È possibile modificare le direzioni degli assi nei singoli aspetti con ggplot?

dat <- data.frame(type = rep(c("A", "B"), each = 10), x = 1:10, y = rnorm(20))

ggplot(dat, aes(x, y)) + geom_point() + facet_wrap( ~ type, scales = "free_y")

Per esempio, potrei fare il grafico sopra con l'asse y per B invertito?

risposte:

3 per risposta № 1

Non sono sicuro che sia possibile, quindi opterei per una soluzione usando il grid.arrange funzione dal gridExtra pacchetto.

library(gridExtra)
library(ggplot2)

dat <- data.frame(type = rep(c("A", "B"), each = 10), x = 1:10, y = rnorm(20),
stringsAsFactors = FALSE)

p_A <- ggplot(subset(dat, type == "A"), aes(x, y)) + geom_point() + facet_wrap( ~ type, scales = "free_y")+
scale_y_continuous(breaks = c(-1,0,1))
p_B <- ggplot(subset(dat, type == "B"), aes(x, y)) + geom_point() + facet_wrap( ~ type, scales = "free_y")+
scale_y_reverse(breaks = c(-1,0,1))

grid.arrange(p_A, p_B, nrow = 1)

inserisci la descrizione dell'immagine qui