Ограничения на размеры элементов легенды ggplot - PullRequest
1 голос
/ 24 марта 2019

Я пытаюсь создать «цветной» ключ легенды с толстой рамкой независимо от того, насколько он тонкий в соответствующем geom_sf. Эта легенда также должна иметь определенный размер.

library(sf)
library(dplyr)
library(stringr)

nc <- st_read(system.file("shape/nc.shp", package = "sf"))

nc_mod <- nc %>% 
  mutate(H_IN_NAME = if_else(str_detect(NAME, "h"), TRUE, FALSE))

g_legends <- ggplot(nc_mod) + 
  geom_sf(aes(fill = AREA)) +
  geom_sf(aes(colour = H_IN_NAME), fill = NA, size = 0.2)


g_legends + theme(legend.key =
                    element_rect(size = 9))

Похоже, что на следующем изображении зарезервировано пространство для размера 7, но оно по-прежнему придерживается размера geom для реального цвета.


g_legends + guides(colour = guide_legend(override.aes = list(size = 7, fill = NA)))

Здесь я переопределяю цвет, но, кажется, есть заглушка, поскольку толщина линии не соответствует 7.

Существуют ли такие "ограничения" или ограничения на размеры различных элементов легенды и как они определяются?

Наконец, когда я добавляю общий размер для ключей легенды (до или после), толщина границы снова игнорируется.

g_legends + guides(colour = guide_legend(override.aes = list(size = 7))) +  
  theme(legend.key.size = unit(0.3, "cm"))

Есть ли способ сделать «цветную» легенду, как на втором изображении, или, возможно, немного толще и , чтобы уменьшить общий размер легенды?

Спасибо!

...