library(sf) # Permite ler arquivos shapefile
library(ggspatial) # Adicionar símbolo de orientação e escala
library(tidyverse) # Produzir mapa com ggplot2
library(cols4all) # Selecionar cores do mapaProduzindo mapas no R com o pacote sf
Nesta seção explicarei como produzir mapas no R e quais pacotes são necessários para essa finalidade. Como exemplo, irei elaborar um mapa dos biomas brasileiros, incluindo a legenda, orientação, eixos e escala.

Pacotes necessários
Carregar arquivos shapefile em seu computador
Os dados foram retirados do site do IBGE. Para acessar os arquivos, você deve acessar o site, ir na aba de seleção à esquerda e fazer as seguintes etapas para baixar os dados dos biomas brasileiros:
flowchart LR
id1(Geociências) --> id2(Cartas e Mapas)
id2(Cartas e Mapas) --> id3(Brasil: Informações ambientais)
id3(Brasil: Informações ambientais) --> id4(Vetores)
id4(Vetores) --> id5(Downloads - na aba esquerda)
id5(Downloads - na aba esquerda) --> id6(Vetores)
id6(Vetores) --> id7(Biomas_250mil)
style id1 fill:#98D8AA,stroke:#333,stroke-width:3px
style id2 fill:#98D8AA,stroke:#333,stroke-width:3px
style id3 fill:#98D8AA,stroke:#333,stroke-width:3px
style id4 fill:#98D8AA,stroke:#333,stroke-width:3px
style id5 fill:#98D8AA,stroke:#333,stroke-width:3px
style id6 fill:#98D8AA,stroke:#333,stroke-width:3px
style id7 fill:#98D8AA,stroke:#333,stroke-width:3px
Após carregar os arquivos em sua pasta do diretório de trabalho, você também deve baixar os arquivos com os dados das regiões (Norte, Nordeste, Centro-Oeste, Sudeste e Sul) do Brasil. Para isso, faça as seguintes seleções:
flowchart LR
id1(Geociências) --> id2(Organização do território)
id2(Organização do território) --> id3(Malhas territoriais)
id3(Malhas territoriais) --> id4(Malha Municipal)
id4(Malha Municipal) --> id5(Brasil)
id5(Brasil) --> id6(Link Unidades da Federação)
style id1 fill:#98D8AA,stroke:#333,stroke-width:3px
style id2 fill:#98D8AA,stroke:#333,stroke-width:3px
style id3 fill:#98D8AA,stroke:#333,stroke-width:3px
style id4 fill:#98D8AA,stroke:#333,stroke-width:3px
style id5 fill:#98D8AA,stroke:#333,stroke-width:3px
style id6 fill:#98D8AA,stroke:#333,stroke-width:3px
Da mesma forma, salve todos os arquivos em uma mesma pasta.
Carregar dados no R
Você deve usar a função read_sf() para fazer a leitura dos arquivos. Após isso, use a função view() para visualizar a tabela com todos os dados.
Você também pode usar a função st_geometry() com a função plot() para visualizar o mapa inicial.
## Dados biomas
my_biom <- read_sf("lm_bioma_250.shp")
view(my_biom)
plot(st_geometry(my_biom))
## Dados regiões do Brasil
my_br <- read_sf("BR_UF_2022.shp")
view(my_br)
plot(st_geometry(my_br))
Produzir mapa
Primeiro, vamos selecionar as cores do mapa com o pacote cols4all, o qual permite escolher cores amigáveis para pessoas com daltonismo e cores categóricas, sequênciais, divergentes, entre outros. No código abaixo, é possível abrir uma tabela com a seleção de 6 cores (n = 6) do tipo categórica (type = "cat").
## Selecionar cores
c4a_table(n = 6, type = "cat") # Seleciona 6 cores do tipo categórica
c4a_types()Fiz a seleção das cores abaixo presentes na palheta lakota que apresenta cores amigáveis para daltônicos “colorblind-friendly” (in portuguese).
#04A3BD
#F0BE3D
#931E18
#DA7901
#247D3F
#20235BAgora, vamos criar o mapa usando os pacotes ggplot2, sf e ggspatial.
As seguintes camadas são utilizadas para elaborar o mapa:
ggplot(): camada usada para criar mapa com ggplot2;geom_sf(): leitura de dados shapefile;scale_fill_manual(): definição das cores do mapa para cada bioma;annotation_north_arrow(): adição da orientação do mapa;annotation_scale(): adição da escala no mapa;labs(): adição dos títulos dos eixos x e y;ggtitle(): adição de um título ao mapa;theme_minimal(): definição do estilo do background do mapa;theme(): definição de informações do tamanho, cor e fonte do texto.
fig_mapa <- ggplot() +
geom_sf(data = my_br) +
geom_sf(data = my_biom, aes(fill = Bioma), color = "#f7fcb9") +
geom_sf_text(data = my_br, aes(label = SIGLA_UF),
size = 2.2, fontface = "bold", color = "#f7fcb9") +
scale_fill_manual(values = c("#247D3F", "#F0BE3D", "#DA7901",
"#04A3BD", "#931E18", "#20235B")) +
annotation_north_arrow(style =
north_arrow_nautical(text_size = 7.5,
text_face = "bold"),
width = unit(1, "cm"),
height = unit(1, "cm")) +
annotation_scale(location = "br", text_face = "bold",
height = unit(0.15, "cm")) +
labs(x = "Longitude", y = "Latitude", fill = "") +
ggtitle("Biomas do Brasil") +
theme_minimal() +
theme(axis.text = element_text(color = "black",
face = "bold", size = 8.5,
family = "serif"),
axis.title = element_text(color = "black",
face = "bold", size = 10,
family = "serif"),
title = element_text(color = "black",
face = "bold", size = 10,
family = "serif"),
legend.position = c(0.88, 0.24),
legend.text = element_text(family = "serif",
face = "bold", size = 10))
fig_mapa
Com nosso mapa pronto, podemos salvá-lo nos formatos PDF ou PNG dentro pasta do diretório. O seguinte código com valores de resolução (dpi), altura (height), largura (width) e unidade de medida (units) devem ser definidos:
ggsave("fig_mapa.jpg", dpi = 300,
width = 35, height = 15,
units = "cm", fig_mapa)
ggsave("fig_mapa.pdf", dpi = 300,
width = 35, height = 15,
units = "cm", fig_mapa)