Ich habe statische Heatmaps mit der library(ggmap)
und stat_density2d()
Funktion gemacht. Ich suche, um das in einer glänzenden App auf einer dynamischen leaflet
Karte neu zu erstellen, fand ich addHeatmap()
. Die resultierenden Bilder sind jedoch unähnlich, wobei die ggmap
-Version scheinbar das richtige Ergebnis bietet.r heatmap - stat_density2d (ggmap) vs. addHeatmap (glänzende Broschüre)
GGMAP
LEAFLET
Was diesen Unterschied verursacht?
Um die beiden unten aufgeführten Beispiele auszuführen, können Sie einige Daten (csv-Datei) herunterladen, die ich hier eingefügt habe. https://drive.google.com/drive/folders/0B8_GTHBuoKSRR1VIRmhOUTJKYU0?usp=sharing
Beachten Sie, dass das leaflet
Ergebnis mit Zoom-Ebene unterscheidet, aber nie übereinstimmt ggmap
Ergebnis (zum Beispiel in Bezug auf Ort maximaler Hitze).
Dies ist der ggmap
Code.
library(ggmap)
data <- read.csv("DATA.csv", sep=";")
data <- subset(data, !is.na(CrdLatDeg))
xmin <- min(data$CrdLonDeg)
xmax <- max(data$CrdLonDeg)
ymin <- min(data$CrdLatDeg)
ymax <- max(data$CrdLatDeg)
lon <- c(xmin,xmax)
lat <- c(ymin,ymax)
map <- get_map(location = c(lon = mean(lon), lat = mean(lat)), zoom = 17,
maptype = "satellite", source = "google")
ggmap(map) +
labs(x="longitude", y="latitude") +
stat_density2d(data=data, aes(x=CrdLonDeg, y=CrdLatDeg, alpha= ..level.., fill= ..level..), colour=FALSE,
geom="polygon", bins=100) +
scale_fill_gradientn(colours=c(rev(rainbow(100, start=0, end=.7)))) + scale_alpha(range=c(0,.8)) +
guides(alpha=FALSE,fill=FALSE)
Dies ist der leaflet
Code.
library(leaflet.extras)
data <- read.csv("DATA.csv", sep=";")
data <- subset(data, !is.na(CrdLatDeg))
leaflet(data) %>%
addTiles(group="OSM") %>%
addHeatmap(group="heat", lng=~CrdLonDeg, lat=~CrdLatDeg, max=.6, blur = 60)
Wie sehen die Bilder aus? Es ist schwierig, den Unterschied zu erkennen, ohne sie anzusehen. – IvanSanchez
@IvanSanchez: Ich habe Daten und Code zur Verfügung gestellt, also sollten Sie in der Lage sein, die Bilder selbst zu erstellen? Ich bin (noch) nicht berechtigt, Bilder hier einzubetten, also habe ich die Bildergebnisse auf den gleichen Link hochgeladen, auf den ich die Daten gesetzt habe. –
Persönlich kenne ich Leaflet- und Heatmap-Algorithmen, aber ich weiß nicht, was als erstes über R steht. Auch das Ausführen der Beispiele bedeutet, dass ich viel Zeit mit dem Ausführen der Beispiele verbringe. Es ist eine gute Sache, die Daten und den Code zu haben, aber wenn du kannst, solltest du es anderen erleichtern, das Problem zu sehen. Wenn Sie die Bilder irgendwo hochladen, kann ich Ihren Beitrag bearbeiten und einbinden. – IvanSanchez