library(plotly)
# Criar dados de exemplo com coordenadas de algumas cidades
<- data.frame(
cities name = c("Alfenas", "Varginha", "Poços de Caldas"),
lat = c(-21.42943530, -21.539957, -21.783731), # Latitude
lon = c(-45.95948212, -45.433960, -46.564178) # Longitude
)
# Criar o mapa interativo
plot_ly(
data = cities,
lat = ~lat,
lon = ~lon,
type = 'scattergeo',
mode = 'markers+text',
text = ~name,
marker = list(size = 10, color = 'blue', opacity = 0.7),
textposition = "top center"
%>%
) layout(
title = "Municípios dos campi da UNIFAL-MG",
geo = list(
scope = 'south america',
showland = TRUE
) )
Mapas interativos com plotly
Objetivos:
1. Conhecer o potencial do “plotly” para criação de mapas interativos
2. Elaborar um mapa interativo com dados inseridos
3. Elaborar um mapa interativo com dados importados
Por fim, deixamos esta última parte de nosso curso para lhe apresentar outro potencial “pra lá de bacana” do
plotly
para ensino e aprendizagem: a construção de mapas interativos. Mapas interativos permitem que se observe informações por mouse hover (passagem do mouse sobre os dados) ou por clique de mouse sobre um mapa contendo esses dados. Por se tratar de um mapa, as informações são obtidas em coordenadas geográficas específicas. Essa característica torna indispensável, portanto, as coordenadas de longitude e de latitude relacionadas aos pontos geográficos que se deseja apresentar.
Segue um exemplo simples, localizando os três municípios do Sul de Minas Gerais onde ficam os campi da Universidade Federal de Alfenas (UNIFAL-MG).
Para observar os municípios, vá ampliando a imagem com o mouse. Veja que o mapa inicia na América do Sul, uma condição inserida no código para facilitar a busca das cidades. Experimente colocar um comentário (#) à esquerda do trecho “scope = …“, e a informação partirá do mapa mundi. Observe agora que ao passar o mouse sobre os municípios é identificada as coordenadas geográficas propostas.
Agora é com voce:
- Localize as coordenadas geográficas (longitude e latitude) de sua cidade Natal, ou da de um ente querido. Pra isso, dê uma busca na internet;
- Copie o código acima, e cole-o num novo script;
- Substitua os atributos “name”, “lat”, e “lon” no
data.frame
do código pelos que você buscou. - Rode o script e observe no mapa interativo o município escolhido. Dica: se você selecionou uma cidade fora da América do Sul, colocar um “#” antes da linha de “scope = …“.
Produção mundial de óleos
Agora imagine que você possa, ao invés de colocar os dados um a um, importar os dados de algum repositório da internet para a construção do mapa, como fora conduzido na etapa anterior. Para ilustrar isso vamos importar uma planilha referente à produção de óleo no planeta. Essa categoria inclui petróleo bruto, óleo de xisto, areias betuminosas, condensados, e líquidos de gás natural (etano, GLP e nafta separados da produção de gás natural).
Ao mesmo tempo, vamos filtrar os dados importados para o ano de 2014, tal como encontrado no banco de dados do Our World In Data.
library(plotly)
# Exemplo de dataframe com valores fictícios
<- read.csv("https://raw.githubusercontent.com/owid/owid-datasets/refs/heads/master/datasets/Oil%20production%20-%20Etemad%20%26%20Luciana/Oil%20production%20-%20Etemad%20%26%20Luciana.csv")
df
# Renomeando as colunas para facilitar interpretação e plotagem
names(df) <- c("País", "Ano", "Produção.TeraWatt")
# Filtrando os dados para o último ano (2014)
<- subset(df, Ano == "2014")
df
head(df)
País Ano Produção.TeraWatt
82 Albania 2014 12.10759
165 Algeria 2014 1014.64045
224 Angola 2014 1035.41999
331 Argentina 2014 421.63374
351 Aruba 2014 1.65714
402 Australia 2014 281.78225
# Criando o mapa choropleth com a escala de cores ajustada
library(plotly)
plot_ly(
data = df,
locations = ~País,
locationmode = "country names",
z = ~Produção.TeraWatt, # Variável que determina as cores
type = "choropleth",
colorscale = "RdBu") # outras escalas: # outras escalas: Viridis, Inferno, Blues, Cividis, Greens, ...
Seguindo a mesma lógica do mapa anterior, se você passar o mouse sobre os países verá o consumo identificado em cada um. Observe que há uma barrinha lateral apresentando a legenda sobre o quantitativo de produção, em Observe também que o “type” do gráfico agora é
choroplet
(e não scattergeo
). Na sua versão mais simples, ele só precisa dos nomes padronizados dos países. Mas também pode ser realizado com um banco de dados que possua apenas as coordenadas geográficas de latitude e longitude. Para auxiliar nessa direção, seguem dois links práticos para arquivos de coordenadas geográficas, e acessíveis pelo
R
: E nesse caso, qualquer banco de dados nesse quesito será bem-vindo. O que significa na prática poder exemplificar qualquer informação de conteúdo didático de forma interativa em um mapa (ex: produção/exportação de insumos, observações clínicas, marcos históricos, etc).