Quero usar padrões (listras, etc.) em um mapa do condado de Nebraska para distinguir entre os condados, em vez de cores. O código abaixo funciona, mas não consigo fazer com que as linhas sejam apenas linhas bonitas, simples e sólidas. Eles sempre aparecem como linhas grossas com bordas, o que é feio. Como faço para que meus padrões sejam apenas linhas simples, em ângulos diferentes, algumas tracejadas e outras sólidas? A documentação do pacote ggpattern é confusa para mim.
ggplot(ne_counties_dataframe) + geom_sf(data = ne_counties_dataframe, color = 'black', lwd = 0.5) +
geom_sf_pattern(aes(pattern = Both, pattern_color = 'white', pattern_fill = Both, pattern_density = 0.1))
"Ambos" é uma coluna que contém 3 fatores, 'Ambos', 'Nenhum' e 'Low_Income'. Quero que os padrões variem de acordo com esta coluna. Obrigado.
Você está quase lá!
Tente entender a mecânica do
{ggplot2}
, em particular, leia oaesthetics
. Eu recomendo que você divida a estética em (mapeada)aesthetics
e (fixa)parameters
.Isso não é trivial... mas ajuda você a navegar.
A extensão
{ggpattern}
usa as mesmas regras.Como um princípio básico:
aes()
O ponto principal é: você normalmente deseja que o mapeamento tenha vários valores (também conhecidos como valores diferentes em sua coluna), enquanto os parâmetros são valores/singletons fixos (por exemplo, "branco", NA, 0,5, etc).
Você não forneceu um exemplo reproduzível, então usei um conjunto rápido de estados europeus e adicionei - de maneira simples - a
Both
coluna. Conectamos isso ao ggplot & ggpattern:Isso produz um gráfico onde o
Both
coluna são usados para determinar os casos de preenchimentos e depois o padrão de preenchimento realNA
(observe aqui que você pode definir a cor semelhante ao que fez no mapa base)Se você plotou seu gráfico, verá que o ggplot criou uma legenda para densidade e preenchimento de padrão. Esta é uma indicação de que o ggplot tentou mapear esses valores como estética. Você também deve notar que a legenda "cor" diz "branco" (o rótulo de texto que você usou), mas é mostrada como "vermelho" (a primeira cor padrão discreta do ggplot - pois mapeia um único valor para o primeiro padrão [se você não definiu outra paleta).
Para padrões tracejados, sólidos, etc., verifique a documentação
{ggpattern}
ou talvez alguém possa ajudar aqui. Não estou usando esta extensão. Mas tenho certeza de que existe uma maneira de controlar o tipo de listras (sólido, tracejado, ponto-traço) ou definir padrões pessoais e conectá-los por meio de umascale_magicstripetypes()
camada.Uma opção é mapear
pattern_angle
, digamos, o nome do condado. Você pode tornar o preenchimento do padrão cinza, desativar a cor do padrão e diminuir a escala do padrão para torná-lo menor: