Visualização de Dados (parte 02)

Análise de Dados Financeiros e Econômicos com o R

Marcelo S. Perlin

EA-UFRGS

01/10/2026

Mapas com o R

Introdução

a representação de dados em mapas é uma das técnicas de visualização de dados mais utilizadas pela mídia jornalística;

  • a abordagem de camadas é intuitiva (uma camada para a representação visual da área geográfica, e outra para os pontos e preenchimentos)

  • R oferece um ecossistema de pacotes baseados no ggplot2 que facilitam a construção de mapas

Exemplo de mapa

Localização de consulados e embaixadas americanas no Brasil

Pacote geobr (Pereira and Goncalves 2023)

  • arquivos de dados geográficos contendo o território nacional são disponibilizados no site do IBGE.

  • O pacote geobr (Pereira and Goncalves 2023) (IPEA) é uma API para acesso aos dados do IBGE.

O formato SF (simple features)

  • O formato SF foi criado pela Open Geospatial Consortium e é eficiente para a representação de mapas geográficos.

  • No R, um mapa SF é um tibble com uma coluna especial de geometria, que guarda os polígonos (áreas) ou pontos junto com os metadados.

  • O ggplot2 desenha esses objetos com a camada geom_sf().

Exemplo geobr (1)

Code
library(dplyr)

data_year <- 2019
br <- geobr::read_country(
  year = data_year, 
  showProgress = FALSE
)

dplyr::glimpse(br)
Rows: 1
Columns: 2
$ year     <dbl> 2019
$ geometry <MULTIPOLYGON [°]> MULTIPOLYGON (((-49.70495 -...

Exemplo geobr (2)

Code
library(ggplot2)

p0 <- ggplot(data = br) + 
  geom_sf() + 
  theme_light()

p0

Mapa do Brasil

Exemplo geobr – cidades e capitais

Code
df_cities <- vdr::data_import(
  "Chapter07-latlong-cities-brazil.csv"
)

p1 <- p0 + 
  geom_point(data = df_cities,
             mapping = aes(y = latitude, x = longitude),
             size = 0.05, 
             color = "blue",
             alpha = 0.35) + 
  geom_point(data = df_cities |> filter(capital == TRUE),
             mapping = aes(y = latitude, x = longitude),
             size = 1.5,
             color = 'red') +           
  labs(title = "Cidades do Brasil",
       subtitle = "Capitais dos estados em vermelho",
       caption = "Dados do IBGE (2019)")

p1

Mapa de cidades e capitais do Brasil

Exemplo geobr – Rendimento mensal domiciliar

Code
df_ibge <- vdr::data_import(
  "Chapter07-data-ibge.csv"
)

data_year <- 2010
states <- geobr::read_state(code_state = "all", 
                            year = data_year, 
                            showProgress = FALSE) |>
  left_join(df_ibge, by = c("code_state" = "codigo"))

p <- ggplot(data = states, 
            aes(fill = rendimento_mensal_domiciliar)) + 
  geom_sf() + 
  theme_light() + 
  labs(fill = "Rend. Mensal",
       title = "Renda Mensal Domiciliar por Estado",
       caption = "Dados do IBGE (2010)") + 
  colorspace::scale_fill_binned_diverging(
    "Blue-Red", 
    mid = median(states$rendimento_mensal_domiciliar))

p

Pacote ggmap (Kahle et al. 2023)

  • API online para a importação de mapas do Google Maps e Stamen Maps.

  • Disponibiliza mapas atualizados do mundo inteiro!

  • Google maps exige registro de projeto e cartão de crédito!

Registrando um projeto no Google

  1. Registre-se no Google através de um email. Caso já tenha uma conta, pule esse passo e faça o login no browser de preferência.

  2. Acesse o site https://console.cloud.google.com/ e clique em “New Project”, definindo o nome do projeto e a localização.

  3. Ative o serviço de “Google Maps” para o projeto criado anteriormente.

  4. Recolha a chave na seção “Credentials”

Usando o API

library(ggmap)

google_key <- "YOUR_KEY_HERE"

register_google(
  key = google_key, 
  account_type = 'standard'
)

Após o registro da chave, teste a chamada ao API com um comando simples:

ggmap::geocode("Porto Alegre RS")
# A tibble: 1 × 2
    lon   lat
  <dbl> <dbl>
1 -51.2 -30.0

Utilizando ggmap

Code
sc <- ggmap::get_map(
  "state of santa catarina, brazil", 
  maptype = "terrain",
  zoom = 7)

p_sc <- ggmap::ggmap(sc) + 
  labs(
    title = "Estado de Santa Catarina",
    caption = "Dados do Google Maps"
  )

p_sc

Exemplo de mapa para o estado de Santa Catarina

Codificação geográfica

  • codificação geográfica é a busca de latitude e longitude a partir de um texto (string)
ea_ufrgs <- ggmap::geocode("Escola de Administração UFRGS")

ea_ufrgs
# A tibble: 1 × 2
    lon   lat
  <dbl> <dbl>
1 -51.2 -30.0

Com a latitude e longitude do local em mãos, fica fácil de mostrar no mapa o ponto de interesse:

Code
poa <- ggmap::get_map("Escola de Administração UFRGS", 
                      zoom = 15)

p_ea <- ggmap::ggmap(poa) + 
  labs(
    title = "Cidade de Porto Alegre", 
    subtitle = "Localização Escola de Adm., UFRGS",
    caption = "Dados do Google Maps") + 
  geom_point(data = ea_ufrgs, 
             aes(x = lon, 
                 y = lat),
             size = 5,
             color = "red") + 
  geom_text(data = ea_ufrgs,
            aes(x = lon,
                y = lat, 
                label = "EA-UFRGS"),
            nudge_y = 0.00075,
            color = "blue")

p_ea