Mapas em R com leaflet.minicharts

Neste artigo vou criar gráficos baseados em mapas em R, usando o pacote de folhetos .minicharts em R. Já introduzi folhetos para criar marcadores em mapas e para visualizar distribuições espaciais com mapas de calor de densidade. Neste post eu crio gráficos de barras, piecharts e gráficos de áreas polares usando folhetos .minicharts em R.

Criando um mapa base com Leaflet em R

Primeiro, crio um mapa base para minha visualização. Eu posso fazer isso usando o pacote de folhetos em R. Nas linhas de código abaixo eu crio o mapa base.

library(knitr)
library(leaflet)

basemap = leaflet() %>% 
  addTiles() %>% 
  addProviderTiles(providers$OpenStreetMap.DE) %>%
  setView(-98,38.5,zoom=4)

basemap
Mapa base para gráficos de dados espaciais

Neste caso, quero visualizar dados para os EUA. Por esse motivo, configurei a visualização do mapa para exibir a maioria dos estados dos EUA. O Havaí não é mostrado.

Importando dados de vendas para folheto.minicharts

Em seguida, importo dados de vendas para cada estado relevante dos EUA. Os dados já foram preparados e resumidos em Excel. É por isso que os dados estão disponíveis em um arquivo csv que importo para a memória.

data = read.csv("sales.csv",header=TRUE)
head(data)
##           state  longitude latitude sales_sensors sales_pumps sales_displays
## 1     Wisconsin  -89.50000 44.50000         13000   12002.374      5664.6262
## 2 West Virginia  -80.50000 39.00000          5000    2739.885      3774.7759
## 3       Vermont  -72.70000 44.00000          3400    1041.972      2332.2328
## 4         Texas -100.00000 31.00000         37000    6287.578     13425.8577
## 5  South Dakota -100.00000 44.50000          5600    3115.934       558.0957
## 6  Rhode Island  -71.74233 41.74233          4000    3623.527       873.5025
##   sales_motoroil sales_filters sales_tires sales_headlamps sales_rearlighting
## 1     10646.1263     3962.7175    4863.633       1921.3345           3692.084
## 2       844.2269      524.2226    4728.812        425.4734           2107.706
## 3       640.9263     1003.8087    2410.252       3056.3377           2659.093
## 4     16161.9943    30441.3494   10438.494       2196.3884          35905.807
## 5      5338.5218     4551.7116    3200.116       3823.2335           3946.851
## 6      1758.7899     3633.4848    3170.961       3211.9275           2669.132
##   sales_interiorlighting sales_total
## 1             11227.7133    66980.61
## 2               956.6307    21101.73
## 3              3177.5397    19722.16
## 4              6316.8175   158174.29
## 5               723.8857    30858.35
## 6              3967.7682    26909.09

O conjunto de dados resume a receita de vendas do último ano fiscal para um negócio de varejo de peças automotivas. O varejista é especializado no estacionamento europeu e atualmente envia todos os seus pedidos de venda aos clientes por dropshipping da Alemanha, França, Itália e Espanha. As vendas são categorizadas em grandes grupos de produtos.

Visualizando dados de vendas usando leaflet.minichart

Para começar, crio um mapa de gráfico de barras usando o folheto e o folheto .minichart. Eu uso os gráficos de barras para comparar as vendas de bombas e sensores nos EUA.

library(leaflet.minicharts)
library(magrittr)
library(dplyr)

colors = c("#FF0000", "#428EF4")

basemap %>%
  addMinicharts(
    data$longitude, data$latitude,
    chartdata = select(data,sales_sensors,sales_pumps),
    colorPalette = colors,
    width = 45, height = 45
  )
Gráfico de barras no mapa com leaflet.minicharts em R

Como isso se compara às vendas totais? Abaixo, o mapa do gráfico de barras fornece a resposta a esta pergunta.

colors = c("#FF0000", "#428EF4","black")

basemap %>%
  addMinicharts(
    data$longitude, data$latitude,
    chartdata = select(data,sales_sensors,sales_pumps, sales_total),
    colorPalette = colors,
    width = 45, height = 45
  )
Gráfico de barras com receita total de vendas

Eu posso fazer uma visão geral como esta usando gráficos de pizza também. Veja abaixo o código:

colors <- c("#FF0000", "#428EF4")

basemap %>%
  addMinicharts(
    data$longitude, data$latitude,
    type = "pie",
    chartdata = select(data,sales_sensors,sales_pumps), 
    colorPalette = colors, 
    width = 60 * sqrt(data$sales_total) / sqrt(max(data$sales_total)), transitionTime = 0
  )
Gráfico de pizza com folheto.minicharts em R

O tamanho da torta é definido pelo raio do círculo. Ela resulta da receita total de vendas em todas as categorias de produtos. Agora gero mais um mapa que exibe gráficos de pizza com todas as categorias de produtos.

basemap %>%
  addMinicharts(
    data$longitude, data$latitude,
    type = "pie",
    chartdata = select(data,sales_sensors,sales_pumps,sales_displays,sales_motoroil,sales_filters,sales_tires,sales_headlamps,sales_rearlighting,sales_interiorlighting), 
    width = 60 * sqrt(data$sales_total) / sqrt(max(data$sales_total)), transitionTime = 0
  )
Todos os grupos de produtos no gráfico, usando leaflet.minicharts

Ao gerar visualizações como essa, ajudo o varejista a entender o mercado dos EUA do ponto de vista da logística de distribuição.

Outros tipos de gráficos com leaflet.minicharts

Usando folhetos .minicharts também posso mostrar fluxos de materiais como fluxos direcionais no mapa. Para isso, preciso construir um dataframe que contenha as coordenadas “source” e “sink” na forma de valores de latitude e longitude. Além disso, o volume de fluxo deve ser quantificado no dataframe para plotar.

Por último, mas não menos importante, também posso usar .minicharts de folheto para criar gráficos animados. Isso é útil, por exemplo, ao mostrar alguma tendência baseada no tempo em um mapa.

Resumo desta publicação de folheto.minicharts

Neste artigo, apresentei o folheto .minicharts como um pacote em R para plotagem de gráfico baseada em mapa. Em artigos anteriores, eu havia introduzido folhetos para, por exemplo, gráficos de marcadores ou mapas de calor baseados em mapas. Este artigo documentou como .minicharts de folheto podem ser usados ​​para adicionar, por exemplo, gráficos de barras e gráficos de pizza a um mapa de folheto .

You May Also Like

Leave a Reply

Leave a Reply

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.