I denne artikel vil jeg oprette kortbaserede diagrammer i R, ved at bruge folderen .minicharts-pakken i R. Jeg har allerede introduceret folder til oprettelse af markører på kort og til visualisering af rumlige fordelinger med tæthedsvarmekort. I dette blogindlæg laver jeg barcharts, piecharts og polarområdediagrammer ved hjælp af folderen .minicharts i R.
Oprettelse af et basiskort med folder i R
Først laver jeg et basiskort til min visualisering. Jeg kan gøre det ved at bruge folderen i R. I kodelinjerne nedenfor opretter jeg basiskortet.
library(knitr)
library(leaflet)
basemap = leaflet() %>%
addTiles() %>%
addProviderTiles(providers$OpenStreetMap.DE) %>%
setView(-98,38.5,zoom=4)
basemap

I dette tilfælde vil jeg se data for USA. Af denne grund indstillede jeg kortvisningen til at vise de fleste af de amerikanske stater. Hawaii er ikke vist.
Import af salgsdata til folder.minicharts
Dernæst importerer jeg salgsdata for hver relevant delstat i USA. Dataene er allerede udarbejdet og opsummeret i Excel. Det er grunden til, at dataene er tilgængelige i en csv-fil, som jeg importerer til hukommelsen.
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
Datasættet opsummerer salgsindtægter fra sidste regnskabsår for en detailforretning med reservedele til biler. Forhandleren har specialiseret sig i den europæiske parkeringsplads og sender i øjeblikket alle sine salgsordrer til kunder ved dropshipping fra Tyskland, Frankrig, Italien og Spanien. Salget er kategoriseret i større produktgrupper.
Visualisering af salgsdata ved hjælp af folder.minichart
Til at begynde med laver jeg et søjlediagram ved hjælp af folder og folder .minichart. Jeg bruger søjlediagrammerne til at sammenligne salg af pumper og sensorer på tværs af USA.
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
)

Hvordan er dette sammenlignet med det samlede salg? Nedenstående søjlediagram viser svaret på dette spørgsmål.
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
)

Jeg kan også lave et overblik som dette ved hjælp af cirkeldiagrammer. Se nedenstående kode:
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
)

Tærtestørrelsen er defineret af cirkelradius. Det er resultatet af den samlede salgsindtægt på tværs af alle produktkategorier. Jeg genererer nu endnu et kort, der viser cirkeldiagrammer med alle produktkategorier.
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
)

Ved at generere visualiseringer som denne hjælper jeg detailhandleren med at forstå det amerikanske marked fra et logistisk distributionssynspunkt.
Andre diagramtyper med folder.minicharts
Ved hjælp af folderen .minicharts kan jeg også vise materialestrømme som retningsbestemte strømme på kortet. Til dette skal jeg konstruere en dataramme , der kontraherer “kilde” og “sink” koordinater i form af bredde- og længdegradsværdier. Derudover skal flowvolumen kvantificeres i datarammen for at plotte.
Sidst, men ikke mindst, kan jeg også bruge folderen .minicharts til at lave animerede diagrammer. Dette er f.eks. nyttigt, når du viser en tidsbaseret trend på et kort.
Resumé af dette indlæg på folderen.minicharts
I denne artikel introducerede jeg folderen .minicharts som en pakke i R til kortbaseret kortplotning. I tidligere artikler havde jeg introduceret folder til fx markørplot eller kortbaserede heatmaps. Denne artikel dokumenterede, hvordan folderen .minicharts kan bruges til at tilføje f.eks. søjlediagrammer og cirkeldiagrammer til et folderkort.

Industriingeniør som gerne beskæftiger sig med optimering, simulation og matematisk modellering i R, SQL, VBA og Python
Leave a Reply