When using scales="free_x"
in facet_wrap
the default seems to be that every subplot will take up the same amount of horizontal space and the x axes in each subplot will be scaled in order for this to happen. Is it possible to have the scale of the x axes be constant across the facets (with the width of each subplot different if necessary)?
For example, running the following code produces a plot where the variables on the x axis on the right are further apart than on the left (since there are 2 and 3 different values of x respectively). Is there a way to make it so the space between a,b,c and d,e is the same?
library(ggplot2)
df <- data.frame(x=c("a", "b", "c", "d", "e"),
y=1:5,
type=c(1, 1, 1, 2, 2))
p <- ggplot(df, aes(x=x, y=y))
geom_point()
facet_wrap(.~type, scales = "free_x")
print(p)
Thanks!
CodePudding user response:
You are looking for facet_grid()
with the argument space = "free"
:
ggplot(df, aes(x=x, y=y))
geom_point()
facet_grid(.~type, scales = "free_x", space = "free")
Output is: