2011-12-19 6 views
3

TN州の複数の郡を共通の色の塗りつぶしを使用して単一の地域として表現したいと考えています。私は以下のコードでそれを行うことができます:地理データの郡を結合する

library(maps) 
map("state", "tennessee", fill = TRUE, col="white", names = TRUE, plot = TRUE) 
co <- map("county",region = c("tennessee,williamson","tennessee,davidson", 
         "tennessee,wilson","tennessee,cheatham"), 
     col = "red", bg = "blue", fill = TRUE, plot = FALSE) 
polygon(co$x, co$y, col = "yellow", border = "black") 

しかし、私の興味のある領域に黒い枠が描かれています。共通の国境が黒で描かれないようにポリゴン関数を定義する方法はありますか?

ありがとうございます。

+0

「クリッピング」をサポートする関数を見つけるには、help.search()を使用する必要があります。 –

答えて

2
  • 全体ROIの外枠を取得するには、as.polygon=FALSEmap.poly()への呼び出しを必要とし、その後lines()でこれをプロットします。
  • 固体充填を得るには、map.poly()as.polygon=TRUEを呼び出してから、これをpolygon()border=FALSEとプロットする必要があります。

mapのコードをコマンドラインで入力してEnterキーを押すだけで確認できます。ここで

は、私はあなたが欲しいものを得るために使用するコードです:

map("state","tennessee",fill=T,col="white",names=T,plot=T) 
coords = map.poly("county",region=c("tennessee,williamson","tennessee,davidson","tennessee,wilson","tennessee,cheatham"), boundary=T, interior=F, fill=F, as.polygon=T) 
polygon(coords, col='red', border=F) 
map("county",region=c("tennessee,williamson","tennessee,davidson","tennessee,wilson","tennessee,cheatham"),fill=F,interior=F,add=T) 

enter image description here

?mapを読んでから、私は単純にmap(..., interior=F, fill=T, col='red')のようなものをやってする仕事だろうと思ったが、これはやっていないようですそれ。バグかもしれませんが、私は確かに知っているこのパッケージで遊んでいません...

+0

+1。私はコードの第3行まで行った。 – Henry

+0

ありがとう!これは完全に動作します! – user1106711

2

R空間タスクビューを読んで、シェイプファイルを読み込んでプロットするためにpackage:maptoolsを使いたいかもしれません。次に、package:rgeosを使用して郡シェイプファイルの境界を解消するか、郡と状態シェイプファイルを取得し、それらを別々にプロットすることができます。

古い 'maps'パッケージは少し限られています。

+0

世界の形状ファイルは含まれています。マップパッケージを使用しない場合、代わりに自由に利用できるシェイプファイルがありますか? –

+0

@PaulHiemstra http://www.gadm.orgをご覧ください。たくさんの良いものをダウンロードして、既にRフォーマットのバージョンを選ぶことができます。 –

+0

私は注意深く見ていきます。ありがとうございました! –

関連する問題