Charting in R mit leaflet.minicharts

In diesem Artikel werde ich kartenbasierte Diagramme in R erstellen, indem ich das Paket leaflet .minicharts in R verwende. Ich habe bereits Leaflet zum Erstellen von Markierungen auf Karten und zum Visualisieren räumlicher Verteilungen mit Dichte-Heatmaps vorgestellt. In diesem Blogbeitrag erstelle ich Balkendiagramme, Tortendiagramme und Polargebietsdiagramme mit Leaflet .minicharts in R.

Erstellen einer Grundkarte mit Leaflet in R

Zuerst erstelle ich eine Grundkarte für meine Visualisierung. Dazu kann ich das Paket leaflet in R verwenden. In den folgenden Codezeilen erstelle ich die Grundkarte.

library(knitr)
library(leaflet)

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

basemap
Grundkarte für räumliche Datendiagramme

In diesem Fall möchte ich Daten für die USA anzeigen. Aus diesem Grund habe ich die Kartenansicht so eingestellt, dass die meisten US-Bundesstaaten angezeigt werden. Hawaii wird nicht angezeigt.

Importieren von Verkaufsdaten für leaflet.minicharts

Als Nächstes importiere ich Verkaufsdaten für jeden relevanten US-Bundesstaat. Die Daten wurden bereits in Excel aufbereitet und zusammengefasst. Deshalb liegen die Daten in einer csv-Datei vor, die ich in den Arbeitsspeicher importiere.

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

Der Datensatz fasst die Umsatzerlöse des letzten Geschäftsjahres für ein Einzelhandelsunternehmen für Kfz-Ersatzteile zusammen. Der Einzelhändler ist auf den europäischen Parkplatz spezialisiert und versendet derzeit alle seine Verkaufsaufträge per Dropshipping aus Deutschland, Frankreich, Italien und Spanien an Kunden. Der Vertrieb ist in große Produktgruppen kategorisiert.

Visualisierung von Verkaufsdaten mit leaflet.minichart

Zunächst erstelle ich eine Balkendiagrammkarte mit Leaflet und Leaflet .minichart . Ich verwende die Balkendiagramme, um die Verkäufe von Pumpen und Sensoren in den USA zu vergleichen.

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
  )
Balkendiagramm auf Karte mit Beiblatt. Minidiagramme in R

Wie verhält sich das zum Gesamtumsatz? Die folgende Balkendiagrammkarte liefert die Antwort auf diese Frage.

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
  )
Balkendiagramm mit Gesamtumsatz

Eine solche Übersicht kann ich mir auch mit Tortendiagrammen machen. Siehe unten Code:

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
  )
Tortendiagramm mit Beipackzettel. Minicharts in R

Die Tortengröße wird durch den Kreisradius definiert. Er ergibt sich aus dem Gesamtumsatz aller Produktkategorien. Ich generiere jetzt eine weitere Karte, die Tortendiagramme mit allen Produktkategorien anzeigt.

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
  )
Alle Produktgruppen auf einem Diagramm, unter Verwendung von leaflet.minicharts

Durch die Generierung von Visualisierungen wie dieser helfe ich dem Einzelhändler, den US-Markt aus Sicht der Logistikverteilung zu verstehen.

Andere Diagrammtypen mit leaflet.minicharts

Mit leaflet .minicharts kann ich auch Materialflüsse als Richtungsflüsse auf der Karte darstellen. Dazu muss ich einen Datenrahmen konstruieren , der „Quelle“- und „Senke“-Koordinaten in Form von Breiten- und Längenwerten zusammenfasst. Darüber hinaus muss das Durchflussvolumen im zu plottenden Datenrahmen quantifiziert werden .

Zu guter Letzt kann ich auch Leaflet .minicharts verwenden , um animierte Diagramme zu erstellen. Dies ist zB hilfreich, wenn ein zeitbasierter Trend auf einer Karte angezeigt wird.

Zusammenfassung dieses Beitrags von leaflet.minicharts

In diesem Artikel habe ich leaflet .minicharts als Paket in R für kartenbasiertes Diagrammplotten vorgestellt. In früheren Artikeln hatte ich Merkblätter für zB Markerplots oder kartenbasierte Heatmaps vorgestellt. Dieser Artikel dokumentiert, wie Leaflet .minicharts verwendet werden können, um beispielsweise Balkendiagramme und Tortendiagramme zu einer Leaflet- Karte hinzuzufügen .

You May Also Like

Leave a Reply

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.