【问题标题】:Fix antarctica on a ggplot world map?在 ggplot 世界地图上修复南极洲?
【发布时间】:2014-12-22 02:36:43
【问题描述】:

我想用 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') 

生产:

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

有没有简单的方法来解决这个问题?

【问题讨论】:

  • 你认为应该如何绘制?

标签: r ggplot2 geospatial geo


【解决方案1】:

maptools 包中的wrld_simpl 数据文件似乎具有更可靠的地图数据,包括一直到纬度 -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)) 

【讨论】:

    【解决方案2】:

    嗨@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)) 
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-19
      • 2019-05-29
      • 1970-01-01
      • 1970-01-01
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多