R ggmap不处理落在边界外的多边形

R ggmap不处理落在边界外的多边形,r,ggplot2,ggmap,R,Ggplot2,Ggmap,我有一个数据框,它有几个多边形的边界(在本例中,是美国人口普查区) 我试图用ggmap绘制这些,但当我尝试放大时,我得到了一个错误。由于这些多边形中的某些点位于ggmap边界之外,因此会将其删除(而不是考虑,但不会在绘图区域中),从而导致错误的形状 例如,以下是数据框的顶部: > head(tract_df) long lat order hole piece id group 1 -110.8798 32.24926 1 FALSE 1 0

我有一个数据框,它有几个多边形的边界(在本例中,是美国人口普查区)

我试图用ggmap绘制这些,但当我尝试放大时,我得到了一个错误。由于这些多边形中的某些点位于ggmap边界之外,因此会将其删除(而不是考虑,但不会在绘图区域中),从而导致错误的形状

例如,以下是数据框的顶部:

> head(tract_df)
       long      lat order  hole piece id group
1 -110.8798 32.24926     1 FALSE     1  0   0.1
2 -110.8798 32.24973     2 FALSE     1  0   0.1
3 -110.8798 32.24988     3 FALSE     1  0   0.1
4 -110.8798 32.25004     4 FALSE     1  0   0.1
5 -110.8798 32.25051     5 FALSE     1  0   0.1
6 -110.8798 32.25058     6 FALSE     1  0   0.1
当我简单地使用ggplot进行绘图时,我可以使用
coord\u map()
函数很好地绘制它们:

ggplot() +
  geom_polygon(data = tract_df, 
               aes(x = long, y = lat, group = group),
               color = "black", 
               size = 0.10, alpha = 0.7) +
  coord_map(xlim = c(-112.68, -111.44), 
            ylim = c(33.18, 33.83))

但是,如果我使用ggmap,它会打破这些边界:

ggmap(phoenix_map) +
  geom_polygon(data = tract_df, 
               aes(x = long, y = lat, group = group),
               color = "black", 
               size = 0.10, alpha = 0.7)


如果我将
coord_map
添加到ggmap绘图中,我会得到一个警告,但它可以工作。有没有一种正确的方法不会让我收到警告?

有一些帖子可能与此相关,我猜ggmap正在删除超出
phoenix\u map
边界框的数据
ggplot2
s函数
xlim
ylim
具有此效果,因此这可能是后台发生的情况。另一方面,
coord_map
xlim
ylim
参数应设置绘图的范围,而不会将数据放在该范围之外。考虑到所有这些,一个解决办法可能是获得一个具有更大边界框的底图,然后使用
coord_map(xlim,ylim)
设置地图范围。