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 mapa
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
<- read_sf("lm_bioma_250.shp")
my_biom view(my_biom)
plot(st_geometry(my_biom))
## Dados regiões do Brasil
<- read_sf("BR_UF_2022.shp")
my_br 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
#20235B
Agora, 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.
<- ggplot() +
fig_mapa 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)