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