/ / Inversão do eixo y em uma faceta ggplot individual - r, ggplot2

Invertendo o eixo y em uma faceta ggplot individual - r, ggplot2

Eu estou traçando uma gama de diferentes dados medidosnas mesmas pessoas próximas umas das outras nas facetas. Para alguns tipos de dados, um valor positivo é "bom" e, para alguns, um valor negativo é "bom". Os últimos tipos de variáveis ​​são geralmente plotados com eixos y invertidos. É possível modificar as direções dos eixos em facetas individuais com 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")

Por exemplo, eu poderia fazer o gráfico acima com o eixo y para B invertido?

Respostas:

3 para resposta № 1

Eu não tenho certeza se isso é possível, então eu optaria por uma solução usando o grid.arrange função do gridExtra pacote.

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)

insira a descrição da imagem aqui