грани как в facet_grid, так и axis.line как для facet_wrap? - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь построить график, используя фасеты, как в , поэтому графики разделяются по осям x и y с использованием двух факторов, например:

mtcars %>% ggplot() +
  geom_point(aes(x=mpg, y=wt)) + 
  facet_grid(cyl ~ gear, scales="free") + 
  theme(panel.background = element_blank(), axis.line = element_line(size=0.5))

enter image description here

Проблема с вышеприведенным подходом состоит в том, что для верхних и левых графиков показаны только линии осей, поэтому трудно дифференцировать графики без использования цветного panel.background .

Эта проблема не возникает с , но эта функция, по-видимому, не будет группировать факторы по двум осям, или полосы всегда будут в одной из сторон (согласно strip.position аргумент), но не так, как для facet_grid. Например:

mtcars %>% ggplot() + 
  geom_point(aes(x=mpg, y=wt)) +
  facet_wrap(cyl ~ gear, scales="free") + 
  theme(panel.background = element_blank(), axis.line = element_line(size=0.5))

enter image description here

Вопрос Можно ли создать график с facet_grid, но с линиями по всем осям или альтернативно используйте facet_wrap, но групповые факторы, как с facet_grid?

1 Ответ

3 голосов
/ 15 марта 2020

Я думаю, вы ищете facet_rep_grid в пакете lemon. Вот код для получения желаемого графика.

library(tidyverse)
library(lemon)

mtcars %>% ggplot() + 
  geom_point(aes(x=mpg, 
                 y=wt)) + 
  facet_rep_grid(cyl ~ gear, 
                 scales="free",
                 repeat.tick.labels = "all") + 
  theme(panel.background = element_blank(), 
        axis.line = element_line(size=0.5))

Plot lemon rep

...