使用ggplot进行不正确的长/ Lat绘图

时间:2017-04-07 02:46:29

标签: ggplot2 maps

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")       

我试图在ggplot上制作一张地图,但是经度和纬度完全没了。我不完全确定发生了什么。例如,为什么是lat。在地图上超过100?

enter image description here

2 个答案:

答案 0 :(得分:1)

你混淆了经度和纬度。如果您为积分添加标签,则会发现没有一个国家/地区位于正确的位置。

因此,请确保x =经度和y =纬度并且它能够正常工作:

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 :(得分:0)

您切换了x和y轴。 x应该是经度,y应该是纬度。此外,我不认为瑙鲁应该有负经度。

试试这个:

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")