为什么coord_map会产生奇怪的输出?

PAC*_*PAC 8 r ggplot2

我正在尝试使用绘制世界地图ggplot.我的代码在我的gist文件中.我不使用时输出正确coord_map但我使用时非常奇怪coord_map:

ggplot(data = test, aes(fill = x)) +
geom_map(aes(map_id = id), map =world.ggmap, color = "white") +
expand_limits(x = world.ggmap$long, y = world.ggmap$lat) +
theme_tufte() + 
coord_map()
Run Code Online (Sandbox Code Playgroud)

使用<code> coord_map </ code>进行映射

ggplot(data = test, aes(fill = x)) +
geom_map(aes(map_id = id), map =world.ggmap, color = "white") +
expand_limits(x = world.ggmap$long, y = world.ggmap$lat) +
theme_tufte()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

当我使用maps包中的数据时,我遇到了同样的错误:

library(ggplot2)
library(maps)
world <- map_data("world")
ggplot() + 
geom_map( data=world, aes(x=long, y=lat, group = group, map_id = region),colour="white", fill="grey10", map = world ) + 
coord_map()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

有没有人有答案?

alk*_*989 9

由于经度值超出范围[-180,180],我之前遇到过类似的问题.在你的例子中,数据没有这个问题,但我的技巧似乎也在这里工作.在我的情况下,我只是使用'xlim'来排除有问题的数据.

这个解决方案似乎也适用于您的情况(我使用了您的要点中的代码):

map+coord_map(xlim=c(-180,180))
Run Code Online (Sandbox Code Playgroud)

它产生以下地图:

在此输入图像描述

南极洲仍有问题,如果你不需要这个区域,你也可以考虑剪掉它:

map+coord_map(xlim=c(-180,180), ylim=c(-60, 90))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述