Изменить расстояние между фасетом / полосой и графиком - PullRequest
3 голосов
/ 13 апреля 2019

Например,

library(ggplot2)
ggplot(mpg, aes(displ, cty)) + geom_point() + facet_grid(cols = vars(drv))

enter image description here Как я могу изменить расстояние между полосой и основным сюжетом? (Например, создайте промежуток между полосой и основным сюжетом.)
Но мне не нужно менять размер полосы (отличается от этого изменить размер полосы ggplot2 ).

1 Ответ

3 голосов
/ 13 апреля 2019

Может быть несколько решений этой проблемы.

geom_hline

Хакерский - добавить линию (возможно, белого цвета, но это зависит от вашей темы) поверх графика. Мы можем сделать это, используя geom_hline (или geom_vline, если ваши фасеты находятся в строках). Это создает иллюзию расстояния.

library(ggplot2)
ggplot(mpg, aes(displ, cty)) +
  geom_point() +
  facet_grid(cols = vars(drv)) +
  # Add white line on top (Inf) of the plot (ie, betweem plot and facet)
  geom_hline(yintercept = Inf, color = "white", size = 4) +
  labs(title = "geom_hline")

strip.background

Другое решение (предложенное @atsyplenkov) заключается в использовании theme(strip.background = ...). Там вы можете указать цвет границы. Тем не менее, это не идеально, так как оно обрезает границу со всех сторон (возможно, есть способ улучшить это).

ggplot(mpg, aes(displ, cty)) +
  geom_point() +
  facet_grid(cols = vars(drv)) +
  # Increase size of the border
  theme(strip.background = element_rect(color = "white", size = 3)) +
  labs(title = "strip.background")

enter image description here

...