basierend generiert Ich möchte eine Choroplethenkarte mit den folgenden Datenpunkten erzeugen:räumlichen Heatmap über ggmap in R auf einem Wert
- Longitude
- Latitude
- Preis
Hier ist der Datensatz - https://www.dropbox.com/s/0s05cl34bko7ggm/sample_data.csv?dl=0.
Ich möchte die Karte zeigen die Bereiche, wo der Preis höher ist und wo der Preis niedriger ist. Es sollte die meisten aussehen wahrscheinlich wie dieses (Beispielbild):
Hier ist mein Code:
library(ggmap)
map <- get_map(location = "austin", zoom = 9)
data <- read.csv(file.choose(), stringsAsFactors = FALSE)
data$average_rate_per_night <- as.numeric(gsub("[\\$,]", "",
data$average_rate_per_night))
ggmap(map, extent = "device") +
stat_contour(data = data, geom="polygon",
aes(x = longitude, y = latitude, z = average_rate_per_night,
fill = ..level..)) +
scale_fill_continuous(name = "Price", low = "yellow", high = "red")
Ich erhalte die folgende Fehlermeldung:
2: Computation failed in `stat_contour()`:
Contour requires single `z` at each combination of `x` and `y`.
I Ich würde wirklich jede Hilfe schätzen, wie dies behoben werden kann, oder jede andere Methode, um diese Art von Heatmap zu erstellen. Bitte beachten Sie, dass ich im Gewicht des Preises interessiert bin, nicht die Dichte der Datensätze.
Sind Sie sicher, dass Sie nach einer Choroplethe suchen? Soweit ich weiß, benutzen die meisten Choroplethen administrative Regionen, nicht Breitengrad/Längengrad. –
Ich stimme zu. Ich denke, der richtige Ausdruck sollte Konturkarte sein. – user709413
Ich konnte die "Single z bei jeder Kombination" -Fehlermeldung loswerden, indem ich die Raten pro Nacht mittelte (einige x- und y-Kombinationen hatten mehrere durchschnittliche Raten, ich nehme an, dass die Koordinaten abgerundet wurden). Aber die Kontur zeichnete immer noch nicht.Ich weiß nicht warum und es hat nicht gesagt. Das Konturlinien-Plot funktioniert für Raster. Sie können es also zum Laufen bringen, indem Sie den Datenrahmen in Raster ändern und fehlende Werte ersetzen. Ich gebe jetzt auf ... –