I am plotting a range of different data measured on the same individuals next to each other in facets. For some types of data a positive value is "good" and for some a negative value is "good". The latter types of variables are usually plotted with flipped y-axes. Is it possible to modify axis directions in individual facets with 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')
For example, could I do the above plot with the y-axis for B reversed?
I'm not sure if that's possible, so I would opt for a solution using the grid.arrange
function from the gridExtra
package.
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)
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments