我想用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')
产地:
但南极洲的大部分地区都没有了 - 它应该是这样的:
有没有一种简单的方法可以解决这个问题?
答案 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))
答案 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))
实际上,我发现R包中的大多数内置世界地图,例如mapdata
,maptools
和maps
不能与coord_map()
一起正常使用。如果有人能弄清楚,那就万分感谢。