在ggplot世界地图上修复antarctica?

时间:2014-10-26 22:28:38

标签: r ggplot2 geospatial geo

我想用gpplot绘制一个简单的世界地图,但是当我这样做时,南极洲被切断,因为坐标不会环绕,所以路径会回到整个地图,而不是走出去边缘。例如:

world_data <- map_data("world")

ggplot() + scale_y_continuous(limits=c(-90,90), expand=c(0,0)) +
scale_x_continuous(expand=c(0,0)) +
theme(axis.ticks=element_blank(), axis.title=element_blank(),
      axis.text=element_blank()) +
geom_polygon(data=world_data, mapping=aes(x=long, y=lat, group=group), fill='grey') 

产地:

Map without bottom part of antarctica

但南极洲的大部分地区都没有了 - 它应该是这样的:

enter image description here

有没有一种简单的方法可以解决这个问题?

2 个答案:

答案 0 :(得分:2)

来自wrld_simpl软件包的maptools数据文件似乎拥有更可靠的地图数据,包括一直到-90度纬度的南极洲数据。例如:

library(maptools)
data(wrld_simpl)

ggplot() + 
  geom_polygon(data=wrld_simpl, 
             aes(x=long, y=lat, group=group), fill='grey20') + 
  coord_cartesian(xlim=c(-180,180), ylim=c(-90,90)) + 
  scale_x_continuous(breaks=seq(-180,180,20)) + 
  scale_y_continuous(breaks=seq(-90,90,10)) 

enter image description here

答案 1 :(得分:0)

嗨,eipi10:设置coord_map()时,您的代码无法正常工作。南极洲看起来很奇怪。

ggplot() + 
    geom_polygon(data=fortify(wrld_simpl), 
                 aes(x=long, y=lat, group=group), fill='grey20') + 
    coord_map(xlim=c(-180, 180), ylim=c(-90, 90)) + 
    scale_x_continuous(breaks=seq(-180, 180, 20)) + 
    scale_y_continuous(breaks=seq(-90, 90, 10)) 

enter image description here

实际上,我发现R包中的大多数内置世界地图,例如mapdatamaptoolsmaps不能与coord_map()一起正常使用。如果有人能弄清楚,那就万分感谢。