Я пытаюсь изменить цвет границы областей и объекта sf, когда рисую его. Изменение цвета границы — это нормально, однако линии немного тонкие, поэтому я хочу сделать толще только цветные линии, чтобы они были более заметными.
Чтение этого вопроса предполагает, что использование "lwd " позволит изменять толщину. Однако, когда я пытаюсь, я либо не получаю никакого эффекта, либо очень толстые линии.
См. пример ниже
library(sf)
library(ggplot)
library(dplyr)
nc <- st_read(system.file("shape/nc.shp", package="sf")) %>%
mutate(type= case_when(
BIR74>16000 ~"High",
TRUE ~"Low"
) %>% factor(levels = c("Low", "High"))) #the levels are ordered to avoid the grey lines overwriting the red ones
nc %>%
ggplot(.) +
geom_sf(aes(fill = BIR74, colour = type)) + #does the job but the coloured borders are quite thing
scale_color_manual(values = c( "#666666","#F8766D"))
nc %>%
ggplot(.) +
geom_sf(aes(fill = BIR74, colour = type,
lwd = ifelse(type =="High", 1, 0.5)) #The values can be anything and it still looks rubbish
) +
scale_color_manual(values = c( "#666666","#F8766D"))
Как я могу получить только ощутимую толщину, например, на x% толще? В идеале будут изменены только целевые края.
lwd
. Дляggplot
это будетsize
, а затем вам может понадобиться установитьscale_size_*
с помощью ручного или другого типа шкалы. Вы не можете установить нужные значения внутриaes
, вы устанавливаете их с помощью шкалы - person camille   schedule 04.09.2019size = type == "High"
внутрьaes
. Тогда будет один размер для истинного и один размер для ложного. Затем добавьтеscale_size_manual
(или_discrete
) и установите там значения. Вы не можете установить точный размер (или любую другую эстетику), которую вы хотите внутриaes
. - person camille   schedule 05.09.2019