Dichte auf Weltkarte basierend auf Variable

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
nicoFhahn

Dichte auf Weltkarte basierend auf Variable

Beitrag 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
Zuletzt geändert von nicoFhahn am Di Mär 20, 2018 10:47 am, insgesamt 3-mal geändert.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Dichte auf Weltkarte basierend auf Variable

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
nicoFhahn

Re: Dichte auf Weltkarte basierend auf Variable

Beitrag 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
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Dichte auf Weltkarte basierend auf Variable

Beitrag von EDi »

Schau dir mal geom_contour an. Density passt nicht, da, wie der Name schon sagt, die Dichte abgebildet wird.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
nicoFhahn

Re: Dichte auf Weltkarte basierend auf Variable

Beitrag 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
Antworten