Как добавить общий ярлык для фасетов в ggplot2 3.3.0? - PullRequest
0 голосов
/ 24 марта 2020

Я хочу добавить общие метки к фасетам в ggplot2. Мой код выглядит так:

library(ggplot2)
df <- data.frame(x= 1:100, y= 1:100,
                 sport= rep(c(TRUE, FALSE), each= 50),
                 female= rep(c(TRUE, FALSE)))

ggplot(df, aes(x, y)) +
  geom_point() +
  facet_grid(female ~ sport)

И график, который я получаю:

plot

Как видите, метки вообще не информативно. Как я могу добавить общие lebals в аспектах? Здесь это sport и female.

Уже существует подобный вопрос , но ответ не работает с текущей версией ggplot2 3.3.0.

1 Ответ

1 голос
/ 24 марта 2020

Возможно, вы захотите использовать аргумент labeller . Для вашего примера сработают ручные значения, но, вероятно, назначение функций масштабируется лучше для вашего реального варианта использования.

Вот пример обоих:

library(ggplot2)

df <- data.frame(x= 1:100, y= 1:100,
                 sport= rep(c(TRUE, FALSE), each= 50),
                 female= rep(c(TRUE, FALSE)))

p1 <- ggplot(df, aes(x, y)) +
  geom_point()

# Using manual values
p1 +
  facet_grid(
    female ~ sport,
    labeller = labeller(
      female = c("TRUE" = "A", "FALSE" = "B"),
      sport = c("TRUE" = "C", "FALSE" = "D")
    )
  )

# Using functions
your_labeller <- labeller(
  female = stringr::str_to_lower,
  sport = stringr::str_to_title
)

p1 +
  facet_grid(
    female ~ sport,
    labeller = your_labeller
  )

Создано в 2020-03-24 с помощью пакета Представить (v0.2.1)

...