R - ggplot2: вставить подзаголовки в легенду - PullRequest
0 голосов
/ 19 ноября 2018

Я создаю карту с ggplot2 с цветами, чтобы представить шесть типов областей, которые могут быть далее перегруппированы в три категории.

С

scale_fill_manual (метки = MyLabels, значения = MyColors)

Я могу получить простую легенду, такую ​​как эта, показывая 6 областей:

enter image description here

Но для целей публикации я бы хотел получить:

enter image description here

То есть, с основными категориями, включенными в подзаголовки в легенде.

Как это возможно?

1 Ответ

0 голосов
/ 19 ноября 2018

Вы можете попытаться добавить поддельные строки в свои данные, и с помощью этих поддельных строк вы можете создать подзаголовки.

Существует пример данных с поддельными значениями:

df <- data.frame(x = 1:9,
                 y = c(0, 0, 0, rnorm(6)),
                 g = factor(c("fakedog", "bigdog", "smalldog", 
                       "fakerabbit", "rabbit",
                       "fakecat", "white", "black", "gray")))

Теперь я создаюустановить метки и цвета для использования в ggplot:

lbl <- c(expression(bold("dogs")), "big dogs", "small dogs",
         expression(bold("rabbits")), "rabbits",
         expression(bold("cats")), "white", "black", "gray")
colo <- c(NA, "red1", "red3",
          NA, "blue1", 
          NA, "green1", "green2", "green3")

и построить образцы данных:

library(ggplot2)
ggplot(df, aes(x = x, y = y, col = g)) +
  geom_point() + 
  scale_colour_manual("Terrirories where people like", values = colo, label = lbl) + 
  theme(legend.key = element_rect(fill = NA))

Окончательный вывод:

enter image description here

...