can I change the position of the strip label in gg

2019-01-23 10:39发布

问题:

I know this is not quite a data visualization issue, but the boss asked for it, so I need to figure out if it is possible.

Thanks!

回答1:

An answer for those searching in 2016.

As of ggplot2 2.0, the switch argument will do this for facet_grid or facet_wrap:

By default, the labels are displayed on the top and right of the plot. If "x", the top labels will be displayed to the bottom. If "y", the right-hand side labels will be displayed to the left. Can also be set to "both".

ggplot(...) + ... + facet_grid(facets, switch="both")

As of ggplot2 2.2.0,

Strips can now be freely positioned in facet_wrap() using the strip.position argument (deprecates switch).

Current docs, are still at 2.1, but strip.position is documented on the dev docs.

By default, the labels are displayed on the top of the plot. Using strip.position it is possible to place the labels on either of the four sides by setting strip.position = c("top", "bottom", "left", "right")

ggplot(...) + ... + facet_wrap(facets, strip.position="right")


回答2:

The answer is yes!

theme(strip.text=element_text(vjust=-10))

The number -10 is determined by the scale and units you're using in your plot.



回答3:

To follow on the use of theme:

theme(strip.text=element_text(vjust=-10))

Be sure your labels all have the same number of carriage returns.

Label /n Facet /n One will vjust at a different rate than Label /n Facet Two.