2017-04-07 3 views
0
dat <- read.table(text=" 'Country_of_Asylum' 'ISO_3' 'Refugees_1000_inhabitants' Lat Long 
    Lebanon LBN 208.91 33.8333 35.8333 
    Jordan JOR 89.55 31.0000 36.0000 
    Nauru NRU 50.60 -0.5333 166.9167 
    Chad TCD 30.97 15.0000 19.0000 
    Turkey TUR 23.72 39.0000 35.0000 
    'South Sudan' SSD 22.32 4.8500 31.6000 
    Mauritania MRT 19.36 20.0000 -12.0000 
    Djibouti DJI 16.88 11.5000 43.0000 Sweden SWE 14.66 62.0000 15.0000 Malta MLT 14.58 35.9000 14.4000", header=TRUE) 

data.frame(top_ten_pcapita) 
library(ggplot2) 
library(maps) 
mdat <- map_data('world') 
str(mdat) 
ggplot() + 
    geom_polygon(dat=mdat, aes(long, lat, group=group), fill="grey50") + 
    geom_point(data=top_ten_pcapita, 
      aes(x=Lat, y=Long, map_id=ISO_3, size=`Refugees_1000_inhabitants`), col="red")  

Ich habe versucht, eine Karte auf ggplot, aber die Längen und Breiten sind komplett aus. Ich bin mir nicht ganz sicher, was los ist. Zum Beispiel, warum ist der Lat. über 100 auf der Karte gehen?Falsches Long/Lat-Plotten mit ggplot

enter image description here

Antwort

0

Sie schaltete die x- und y-Achse. x sollte Längengrad sein, y sollte Breitengrad sein. Außerdem glaube ich nicht, dass Nauru eine negative Länge haben sollte.

Versuchen Sie folgendes:

ggplot() + 
    geom_polygon(dat=mdat, aes(long, lat, group=group), fill="grey50") + 
    geom_point(data=top_ten_pcapita, 
      aes(x=Long, y=Lat, size=`Refugees_1000_inhabitants`), col="red") 
1

Sie vermischt Längen- und Breitengrad. Wenn Sie Ihren Punkten Labels hinzufügen, werden Sie feststellen, dass keines der Länder an der richtigen Stelle angezeigt wird.

So sicher, dass x = Länge und y = Breite und es wird funktionieren:

ggplot() + 
    geom_polygon(dat = mdat, aes(long, lat, group = group), fill = "grey50") + 
    geom_point(data = top_ten_pcapita, 
      aes(x = long, y = lat, size = Refugees_1000_inhabitants), col = "red") 
+1

große Geister gleich denken :) –

+0

Ach du meine Güte, und gestern war ein drei-cup-of-Kaffee irgendwie vom Tag. Danke, Rote Beete und Jeroen! – M85