首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用geom_polygon绘制地图的地理边界不完全- ggplot2

使用geom_polygon绘制地图的地理边界不完全- ggplot2
EN

Stack Overflow用户
提问于 2013-07-14 22:04:35
回答 1查看 2.3K关注 0票数 8

我有一个具有tweet坐标的数据框架,如:

代码语言:javascript
复制
library(ggplot2)

df <- data.frame(long = c(-58.1, -58.2, -58.3, -58.4, -58.5, -55),
                 lat = c(-34.1, -34.2, -34.3, -34.4, -34.5, -25))

我想设计布宜诺斯艾利斯大都会区,也就是AMBA。它的定义是:经纬:(-58,-59)纬度:(-34,-35)

我的数据帧中有一行在AMBA区域之外。(对问题(2)很重要)

以下是我尝试过的:

加载阿根廷地图信息

代码语言:javascript
复制
con <- url("http://gadm.org/data/rda/ARG_adm2.RData")
print(load(con))
close(con)

ggmap <- fortify(gadm, region = "NAME_2")        

为只包含AMBA的地块设置限制

代码语言:javascript
复制
lim <- data.frame(lon = c(-59, -58), lat = c(-35, -34))

绘图

代码语言:javascript
复制
ggplot(data=ggmap, aes(x=long, y=lat)) +
   scale_x_continuous(limits = c(-59,-58)) + 
   scale_y_continuous(limits = c(-35,-34)) +
   geom_polygon(data = ggmap, fill = "grey80", aes(group=group)) +
   geom_path(color="white",aes(group=group)) +
   geom_point(data = df, aes(x = lon, y = lat, colour = "red"), alpha = 30/100)

问题:

  1. 主要的问题是,外部国家的政治边界区域并不完整,所以地图看起来很奇怪。有办法绕过这件事吗?
  2. 我应该对数据框架进行子集,以便将观测结果保存在AMBA区域内,还是可以直接进行绘图并直接选择我感兴趣的区域。我相信这就是scale_x_continuous(极限=.)确实如此。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-15 07:43:46

尝试coord_map而不是scale_x_continuous/scale_y_continuous。设置坐标系统的限制会放大地形图(就像你用放大镜看它一样),并且不会像设定尺度上的限制那样改变底层数据。

代码语言:javascript
复制
ggplot(data=ggmap, aes(x=long, y=lat)) +
    geom_polygon(data=ggmap, fill="grey80", aes(group=group)) +
    geom_path(color="white",aes(group=group)) +
    geom_point(data=df, aes(x=long, y=lat), colour="red", alpha=30/100) +
    coord_map(xlim=-c(59, 58), ylim=-c(35,34))

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17644262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档