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 № 1Non 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)