使用下面的代码我生成了一张以华盛顿特区为中心的地图。解决方案基于科斯克的解决方案在这里 https://stackoverflow.com/questions/10620862/use-different-center-than-the-prime-meridian-in-plotting-a-world-map。我变了geom_path
to geom_polygon
因为我想给这些国家上色。
一切都很好,直到我想添加scale_x_continuous
(评论了所以你可以看到省略时没有问题),这使得南极洲和中国看起来很奇怪,我猜是因为多边形被修剪了?
对此有已知的解决方法吗?感谢帮助。
library(maps)
library(maptools)
library(ggplot2)
home_country_longitude <- -77.03
mp1 <- fortify(map(fill=TRUE, plot=FALSE))
mp2 <- mp1
mp2$long <- mp2$long + 360
mp2$group <- mp2$group + max(mp2$group) + 1
mp <- rbind(mp1, mp2)
if(home_country_longitude < 0){
mp$long <- mp$long - (360 + home_country_longitude)
} else {
mp$long <- mp$long + home_country_longitude
}
ggplot() +
geom_polygon(aes(x = long, y = lat, group = group), data = mp) +
#scale_x_continuous(limits = c(-180, 180)) +
theme(panel.background = element_rect(fill = "#090D2A"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
Use coord_map
, 像这样。完整解释here https://stackoverflow.com/questions/18323832/plot-small-region-of-a-large-polygon-map-in-ggplot2.
ggplot() +
geom_polygon(aes(x = long, y = lat, group = group), data = mp) +
coord_map(xlim = c(-180, 180)) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)