在 ggplot 世界地图上修复南极洲?
Posted
技术标签:
【中文标题】在 ggplot 世界地图上修复南极洲?【英文标题】:Fix antarctica on a ggplot world map? 【发布时间】: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')
生产:
但南极洲南部的大部分地区都不见了 - 它应该是这样的:
有没有简单的方法来解决这个问题?
【问题讨论】:
你认为应该如何绘制? 【参考方案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 包中的内置世界地图,例如 mapdata
、maptools
和 maps
不能与 coord_map()
一起正常工作。如果有人能弄清楚,非常感谢。
【讨论】:
以上是关于在 ggplot 世界地图上修复南极洲?的主要内容,如果未能解决你的问题,请参考以下文章