2

我正在尝试用我自己的多边形创建一个等值线图。多边形平铺整个世界,但我只想显示美国境内的区域。我想要的是剪辑超出覆盖美国的边界框的多边形,但是当我将边界框指定为限制时,会发生部分位于边界框之外的所有多边形根本不绘制。

我有看起来像这样的数据,指定矩形:

         lat          long rank group
1   36.56792 -80.260138889    1     1
2   37.97319 -80.260138889    1     1
3   37.97319 -78.866805556    1     1
4   36.56792 -78.866805556    1     1
5  -45.00000  -0.008333334    2     2
6  -22.00000  -0.008333334    2     2
7  -22.00000  22.075000000    2     2
8  -45.00000  22.075000000    2     2
9  -44.99500 -67.441666667    3     3
10 -33.60000 -67.441666667    3     3
11 -33.60000 -45.700000000    3     3
12 -44.99500 -45.700000000    3     3
...

我正在使用这样的代码:

library(ggplot2)
library(maps)
tab = read.table("hiergrid.level1.penn-ave.dat", header = TRUE)
data = data.frame(tab)
mapstates = map_data("state")
ggplot(data, aes(long, lat, group=group)) +
  geom_polygon(aes(fill=rank)) +
  ylim(25,50) +
  xlim(-125,-60) +
  coord_map(project="polyconic") +
  geom_path(data = mapstates, color = "white", size = .75)

我得到这样的输出:

R输出

可以看出,边界框外的多边形根本没有绘制,但我希望它们被绘制和裁剪。有什么帮助吗?

4

1 回答 1

0

好的,看起来这可以通过指定限制来解决coord_map()。但我仍然必须指定xlimand ylim

library(ggplot2)
library(maps)
tab = read.table("hiergrid.level1.penn-ave.dat", header = TRUE)
data = data.frame(tab)
mapstates = map_data("state")
ggplot(data, aes(long, lat, group=group)) +
  ylim(0,90) +
  xlim(-180,-20) +
  geom_polygon(aes(fill=rank)) +
  coord_map(project="mercator", ylim=c(24,50), xlim=c(-126,-66)) +
  geom_path(data = mapstates, color = "white", size = .75)

输出是这样的:

在此处输入图像描述

但是请注意,如果我省略xlimand ylim,或者如果它们在 X 轴上太宽,我会得到非常奇怪的输出,如下所示:

在此处输入图像描述

我不确定为什么会这样。

于 2014-06-08T22:21:04.800 回答