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
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
)
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
)
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
)
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
)
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 .
Cientista de dados com foco em simulação, otimização e modelagem em R, SQL, VBA e Python
Leave a Reply