Dieser Artikel nimmt an Power BI Adventskalender 2019 von Prince @ yugoes1021 teil.
Ich habe verschiedene geografische Serien in Power BI geschrieben, aber unter dem Gesichtspunkt, sie einfach auf einer Karte zu visualisieren, ist nicht mehr viel Material übrig, sodass es sich in der Regel um einen Artikel handelt, der die Ecke einer schweren Kiste berührt. (Ich habe jedoch weder die Ressourcen noch die Zeit, um die Webversion oder Embedded zu berühren.)
Geografische Analyse mit Power BI (Basis) Geografische Analyse mit Power BI (Anwendung 1) Geografische Analyse mit Power BI (Anwendung 2) US-Karte mit Power BI Adventskalender 2017 Geografische Analyse mit PowerBI (Zusammenfassung 2018) Adventskalender 2018
Daher habe ich mich für die Möglichkeit entschieden, dass es sich um eine Karte mit R oder Python auf Power BI Desktop handelt. Erweiterungen in R und Python werden an verschiedenen Stellen eingeführt, daher werden hier nur die offiziellen Links verwendet.
Erstellen von Power BI-Grafiken mit R Python-Skripte in Power BI Desktop ausführen
Als Problem werden wir die Punktdatenvisualisierung verwenden, die wir als Benchmark verwendet haben. Wir werten mit denselben offenen Uber-Daten wie zuvor aus. Taxisondendaten für San Francisco.
Grundsätzlich konzentrieren wir uns zum Zweck der einfachen Anzeige darauf, wie R, Python in Power BI aufgerufen werden, wie Punktdaten in jeder Bibliothek angezeigt werden, wie der Anzeigebereich dynamisch geändert wird usw. Jede Bibliothek hat eine ganz andere Idee, daher wäre es schön, wenn Sie dies auch vermitteln könnten, aber mit dieser Größe ist dies nicht möglich. .. ..
R
R hat mehr Variationen. Power BI hat mehr Geschichte als Python. Ein kleiner Stolperstein ist die von PowerBI verwendete R-Version und der Installationsort. Sie können es auf der Optionsseite unten festlegen. Geben Sie daher den R-Interpreter an, den Sie verwenden möchten, und verwenden Sie ihn immer. Auf diese Weise sparen Sie sich die Mühe, die Bibliothek zu installieren.
Derselbe Interpreter kann jedoch die Umgebung im Benutzerordner speichern. In diesem Fall müssen Sie sie in einer globalen Interpreterumgebung installieren.
library(maps)
Es ist eine alte Bibliothek. Grundsätzlich werden verschiedene weiße Karten angezeigt und Daten darauf angezeigt. (Die ggmap im Code wird nur für die Komfortfunktion verwendet, um den Begrenzungsrahmen abzurufen.) Mit der Funktion with können Sie Punkte überlagern.
library(maps)
library(ggmap)
sbbox <- make_bbox(lon = dataset$longitude, lat = dataset$latitude, f = 0)
map('usa', col = "grey", fill = TRUE, bg = "white", border = 0,
xlim = c(sbbox[1], sbbox[3]), ylim = c(sbbox[2], sbbox[4]))
with(dataset, points(longitude, latitude, pch = 1, col = 'blue', cex = .2))
library(sf)
Eine Bibliothek zum angemessenen Umgang mit Geodaten. Sie müssen es einmal in einen Datenrahmen im SF-Format konvertieren. Sie können den Datenrahmen direkt zeichnen.
library(sf)
library(sp)
dfsf <- dataset %>% st_as_sf(coords = c('longitude', 'latitude'), crs = 4236)
plot(dfsf, col = "blue", pch = 21)
library(tmap)
Es ist eine Bibliothek, mit der Sie relativ einfach verschiedene Themendiagramme zeichnen können. Dies ist praktisch, da Sie zwischen dem normalen Plotmodus und dem Ansichtsmodus wechseln können, in dem der Leaflet Viewer gestartet wird. Wie bei anderen konnte PowerBI nichts anderes tun, als einen Browser auf dem externen Bildschirm der Broschüre zu starten. Wie Sie unten sehen können, kann die Grundkarte jedoch nicht im Plotmodus eingefügt werden. Es tut uns leid.
library(tmap)
library(dplyr)
library(sf)
library(sp)
dfsf <- dataset %>% st_as_sf(coords = c('longitude', 'latitude'), crs = 4236)
tmap_mode("plot")
map <- tm_shape(dfsf, name = "uber") +
tm_symbols(shape = 21, col = "blue", size = 0.05) +
tm_basemap("Stamen.Watercolor")
map
library(ggplot2)
Die Möglichkeit, Karten zu zeichnen, ist in ggplot integriert. Möglicherweise ist der am häufigsten verwendete Datenprozessor normalerweise der für Sie am besten geeignete.
library(ggplot2)
library(mapproj)
library(ggmap)
sbbox <- make_bbox(lon = dataset$longitude, lat = dataset$latitude, f = 0)
usmap <- map_data("state")
ggplot() +
geom_polygon(data = usmap, aes(x = long, y = lat, group = group), fill = "grey", alpha = 0.5) +
geom_point(data = dataset, aes(x = longitude, y = latitude)) +
theme_void() + coord_map(xlim = c(sbbox[1], sbbox[3]), ylim = c(sbbox[2], sbbox[4]))
library(ggmap)
Wenn Sie eine detailliertere Hintergrundkarte wünschen, ist dies die richtige. Der API-Schlüssel muss registriert werden, wahrscheinlich weil die Einschränkungen der Google Maps-API verschärft wurden. Stellen Sie außerdem sicher, dass Sie die folgende Entwicklungsversion mit nützlichen Registrierungsfunktionen erhalten.
Wenn Sie die neueste Version in Ihrer R-Umgebung mithilfe der folgenden Methode installieren, wird eine Funktion namens register_google hinzugefügt, die die Schlüsseleinstellung ermöglicht. Aktualisieren Sie sie daher.
devtools::install_github("dkahle/ggmap")
library(ggplot2)
library(mapproj)
library(ggmap)
register_google(key = "YOUR_API_KEY")
sbbox <- make_bbox(lon = dataset$longitude, lat = dataset$latitude, f = 0)
map <- get_stamenmap(bbox = sbbox, zoom = 13, maptype = "toner-lite")
ggmap(map) +
geom_point(aes(x = longitude, y = latitude), color = "blue" ,data = dataset, alpha = .5)
Python
Python verfügt über eine vollwertige Kartenvisualisierungsbibliothek wie Folium und Shapely sowie eine Geodatenverarbeitungsbibliothek wie Geopandas, die sehr einfach zu handhaben ist. Als ich sie jedoch in Power BI ausprobierte, funktionierte sie nicht einfach. tat. Es gab auch eine Person, die Folium ausführen wollte, aber wie unten gezeigt, scheint es, dass nur eine begrenzte Bibliothek mit dem aktuellen Power BI funktioniert, also habe ich beschlossen, gehorsam aufzugeben. .. ..
Help to implement Python Script - Microsoft Power BI Community
The following Python packages (non-Intel MKL) are currently supported for use in your Power BI reports. Reference: Python packages and versions
- Matplotlib
Python legt auch den folgenden Interpreter fest. Ich denke, es wird Anaconda sein, aber bitte beachten Sie, dass selbst wenn Sie eine neue Bibliothek installieren, diese mit Power BI nicht funktioniert.
Matplotlib
Unter diesen scheint Matplotlib eine Bibliothek namens mpl_toolkits: basemap zu haben. Es ist kein Matplotlib-Standard und muss installiert werden. Derzeit wird die Pip-Installation nicht unterstützt und Conda usw. wird verwendet.
conda install -c anaconda basemap
Nach der Installation mit kann es in der Anaconda-Umgebung verwendet werden.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
m = Basemap(llcrnrlon=BBox[0],llcrnrlat=BBox[2],urcrnrlon=BBox[1],urcrnrlat=BBox[3])
m.drawcoastlines()
x, y = m(dataset.longitude, dataset.latitude)
m.plot(x, y, 'o')
plt.show()
Ergebnisse mit VSCode:
Es funktionierte jedoch nicht mit PowerBI, da es sich in erster Linie nicht um eine andere Bibliothek als Matplotlib handelte. orz
Wir verwenden dieselben Daten wie zuvor. Vergleichen wir sie daher mit der Standardbibliothek. Ich habe versucht, die Anzahl der Datensätze im Voraus mit dem Abfrageeditor einzugrenzen. Python macht Tee schlammig und zeigt einfach ein zweidimensionales Diagramm an.
Es wird problemlos einschließlich der Standardkarte angezeigt. Es ist nur die angezeigte Nummer.
Die Standardkarte gibt eine Meldung aus, dass nicht alle Punkte angezeigt werden. Es scheint, dass es keine größeren Auslassungen gibt, wie ich andere gesehen habe. Die Geschwindigkeit ändert sich auch nicht viel.
ArcGIS hat begonnen zu spielen. Die Standardkarte scheint zufällig ausgewählt worden zu sein, und der Erscheinungsbereich hat sich nicht wesentlich geändert. Ich weiß nicht, dass andere Bibliotheken unter PowerBI ausgeführt werden, und es scheint, dass sie alle angezeigt werden können. (Ja wirklich?) Es ändert sich nicht viel, außer dass tmap und ggmap etwas langsam sind. Sie müssen keine Minute warten.
An diesem Punkt scheinen die Daten auch für R-Visuals ausgedünnt zu werden. In den Uber-Daten gibt es auch ein Auto, das nach Las Vegas fährt, sodass ggmap Zeit braucht, um das Ganze anzuzeigen (das Vergrößerungsverhältnis der Karte muss angepasst werden).
In einer so einfachen Karte ist es sinnlos, R-Code zur Visualisierung zu verwenden. Wenn Sie jedoch eine spezielle Zeichnung oder Berechnung benötigen, können Sie eine Bibliothek fest in R einbetten und verwenden. Ich dachte, es könnte eine Wende geben.
Recommended Posts