2012-02-23 10 views
1

gis.stackexchangeからの転記です。質問はfairly long and detailedなので、私はそれを繰り返さない。単純な問題は、パッケージで使用されるPolySetデータをサブセット化する方法を見つけることができないということです。 1つのオプションは、にmaptoolsでサブセット化し、PolySetに変換することですが、これは単なる回避策です。どんな助けも高く評価されます。PBSSettingパッケージ内のPolySetデータをサブセット化する方法は?

答えて

4

あなたはattrのを探しています:

df[attr(df, "PolyData")$NAME_1 == 'Bumthang',] 

EDIT:

うこの作品?

引数colは、色を表し、PID値にリンクされています。

df$Z='white' 
df[attr(df, "PolyData")$NAME_1 == 'Bumthang',]$Z ="red" 

plotPolys(df,col=df$Z) 

enter image description here

また、ボーダーの色を与える引数borderで遊ぶことができます。 "白"にすると、表示される領域はBumthangになります。

このような何かが働くだろう:

df$W = 'white' 
#borders of the region 
df[attr(df, "PolyData")$NAME_1 == 'Bumthang',]$W ="red" 
plotPolys(df,col=df$Z,border=df$W) 

enter image description here

+0

申し訳ありませんが、これは動作しません。しかし、なぜ私は理解していない。実行中のattr(df、 "PolyData")$ NAME_1は本当にNAME_1(Bumthangを含む)の値のリストを私に渡します! – user702432

+0

あなたは達成しようとしているものは何ですか?私には分かりません。地図の中に何かありますか?あなたは模範を描くことができますか?または少しの例を示しますか? – aatrujillob

+0

PolySetデータには多くの部分領域があります。したがって、plotPolys(df)を実行すると、マップ全体とすべてのサブ領域が描画されます。特定のサブリージョンをサブセット化し、それをプロットする:plotPolys(sub_df)またはplotLines(sub_df)。 – user702432

0

どのファイルをサブセットする別のライブラリを使用して使用してはどうですか? rgdalを使用してデータをサブセット化し、ファイルに保存し、サブセットを含むシェイプファイルをインポートし、PBSMappingを使用してプロットすることができます。

library(rgdal) 
library(PBSmapping) 

df <- readOGR(".","df") 
subset <- df[df$NAME_1=="Bumthang",] 
writeOGR(subset, ".", "bumthang", driver="ESRI Shapefile") 
bum = importShapefile("bumthang.shp") 
plotPolys(bum, projection=TRUE) 

enter image description here

それとも、完全PBSmappingと離れて行うことができます。

plot(subset, axes=TRUE) 

enter image description here

関連する問題