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

OK、これは制限を に指定することで修正できるようcoord_map()です。しかし、私はまだ指定する必要がxlimあります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 に答える