Seite 1 von 1

Dichte auf Weltkarte basierend auf Variable

Verfasst: Di Mär 20, 2018 8:09 am
von nicoFhahn
Hallo,

ich versuche aktuell eine Dichte auf eine Weltkarte zu plotten. Das sieht aktuell so aus:
Bild

Code für die Heatmap:
library(ggmap)

Code: Alles auswählen

map = get_map(location = c(lon=43, lat=36), zoom = 6)
ggmap(map) + 
geom_density2d(aes(x=Longitude, y=Latitude), 
data =  rel ,size = 0.3) +
stat_density2d(data = rel, aes(x=Longitude, y=Latitude,
fill = ..level.., alpha = ..level..), size =0.01, bins = 16,
geom = "polygon") + 
scale_fill_gradient(low = "green", high = "red") +
scale_alpha(range = c(0, 0.3), guide = FALSE)+
geom_point(aes(x=Longitude, y=Latitude, colour = Freq),alpha = 0.75, size=5, data = rel)+
scale_colour_gradient(low = "#3afff4", high = "#fc0000") 
Code für den Datensatz:

Code: Alles auswählen

rel = as.data.frame(matrix(0, nrow = 6, ncol = 3))
rel[1,1]=1
rel[1,2]=34.55040
rel[1,3]=40.88923
rel[2,1]=0
rel[2,2]=34.16807
rel[2,3]=45.10331
rel[3,1]=0
rel[3,2]=36.02210
rel[3,3]=43.40581
rel[4,1]=0.73
rel[4,2]=36.09917
rel[4,3]=43.32750
rel[5,1]=0.94
rel[5,2]=36.35868
rel[5,3]=43.15194
rel[6,1]=1
rel[6,2]=32.12694
rel[6,3]=45.23083
colnames(rel) = c("Freq", "Latitude", "Longitude")
Die Map wird aktuell dort rot, wo viele Koordinatenpunkte sind. Ich möchte nun, dass die Dichte dort rot wird wo die Variable Freq einen hohen Wert hat, also wo von geom_point rote Punkte generiert werden.
Hat jemand eine Idee?

Vielen Dank schonmal.

Nico

Re: Dichte auf Weltkarte basierend auf Variable

Verfasst: Di Mär 20, 2018 10:10 am
von bigben
Mit geom_tile() lassen sich Werte in einem rechteckigen Raster als Heatmap darstellen. Da Deine Werte nicht in einem rechteckigen Raster vorzuliegen scheinen, musst Du dieses vielleicht selbst aus Deinen Werten erstellen?

LG,
Bernhard

Re: Dichte auf Weltkarte basierend auf Variable

Verfasst: Di Mär 20, 2018 10:28 am
von nicoFhahn
Hey Bernhard,

danke erstmal für deine Antwort. Ich bin mir bewusst, dass das keine Heatmap im klassischen Sinn ist und wie ich eine solche erstellen könnte.
Ich würde jedoch gerne für die Grafik mit stat_density2d arbeiten.

Nico

Re: Dichte auf Weltkarte basierend auf Variable

Verfasst: Di Mär 20, 2018 7:28 pm
von EDi
Schau dir mal geom_contour an. Density passt nicht, da, wie der Name schon sagt, die Dichte abgebildet wird.

Re: Dichte auf Weltkarte basierend auf Variable

Verfasst: Mi Mär 21, 2018 8:14 am
von nicoFhahn
Hey Edi,

Danke für den Tipp. Ich komm leider erst am Montag wieder dazu es auszuprobieren werd dann aber entsprechendes Feedback geben.

Nico