En este artículo, crearé gráficos basados en mapas en R, usando el paquete de folletos .minicharts en R. Ya introduje el folleto para crear marcadores en mapas y para visualizar distribuciones espaciales con mapas térmicos de densidad. En esta publicación de blog , creo gráficos de barras, gráficos circulares y gráficos de áreas polares utilizando folletos .minicharts en R.
Crear un mapa base con Leaflet en R
Primero, creo un mapa base para mi visualización. Puedo hacerlo usando el paquete de folletos en R. En las líneas de código a continuación creo el mapa base.
library(knitr)
library(leaflet)
basemap = leaflet() %>%
addTiles() %>%
addProviderTiles(providers$OpenStreetMap.DE) %>%
setView(-98,38.5,zoom=4)
basemap
En este caso, quiero ver los datos de EE. UU. Por esta razón configuré la vista del mapa para mostrar la mayoría de los estados de EE. UU. No se muestra Hawái.
Importación de datos de ventas para folleto.minicharts
A continuación, importo datos de ventas para cada estado relevante de EE. UU. Los datos ya han sido preparados y resumidos en Excel. Es por eso que los datos están disponibles en un archivo csv que importo a la memoria.
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
El conjunto de datos resume los ingresos por ventas del último año fiscal para un negocio minorista de repuestos de automóviles. El minorista se especializa en el estacionamiento europeo y actualmente envía todos sus pedidos de venta a los clientes mediante dropshipping desde Alemania, Francia, Italia y España. Las ventas se clasifican en los principales grupos de productos.
Visualización de datos de ventas usando leaflet.minichart
Para empezar, creo un mapa de gráfico de barras usando folleto y folleto .minichart. Uso los gráficos de barras para comparar las ventas de bombas y sensores en EE. UU.
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
)
¿Cómo se compara esto con las ventas totales? El siguiente mapa de gráfico de barras ofrece la respuesta a esta pregunta.
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
)
También puedo hacer una descripción general como esta usando gráficos circulares. Vea el siguiente 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
)
El tamaño del pastel se define por el radio del círculo. Es el resultado de los ingresos totales por ventas en todas las categorías de productos. Ahora genero un mapa más que muestra gráficos circulares con todas las categorías de productos.
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
)
Al generar visualizaciones como esta, ayudo al minorista a comprender el mercado estadounidense desde el punto de vista de la distribución logística.
Otros tipos de gráficos con leaflet.minicharts
Usando folletos .minicharts, también puedo mostrar los flujos de materiales como flujos direccionales en el mapa. Para esto, necesito construir un marco de datos que contrate las coordenadas de «fuente» y «sumidero» en forma de valores de latitud y longitud. Además, el volumen de flujo debe cuantificarse en el marco de datos para trazar.
Por último, pero no menos importante, también puedo usar folletos .minicharts para crear gráficos animados. Esto es útil, por ejemplo, cuando se muestra una tendencia basada en el tiempo en un mapa.
Resumen de esta publicación de folleto.minicharts
En este artículo, presenté el folleto .minicharts como un paquete en R para el trazado de gráficos basados en mapas. En artículos anteriores, introduje folletos para, por ejemplo, diagramas de marcadores o mapas de calor basados en mapas. Este artículo documentó cómo se pueden usar los .minicharts de folletos para agregar, por ejemplo, gráficos de barras y gráficos circulares a un mapa de folletos.
Ingeniero industrial especializado en optimización y simulación (R, Python, SQL, VBA)
Leave a Reply