米国本土の R でマップを作成したいと思います (maps パッケージを使用)。1 つの州が黒 (CA) で塗りつぶされ、1 つの州 (TX) がクロスハッチまたはその他のパターンで塗りつぶされます。残りの州には、塗りつぶしのない黒い境界線が必要です。簡単な解決策があると確信していますが、まだ見つけていません。
質問する
3362 次
3 に答える
4
私は最近同じ問題を抱えていましたが、州が多すぎてポリゴンで手動でハッチングできませんでした。特定の州のマップにdensity=10を追加するだけで、ハッチングされたバーで塗りつぶされるようです。
したがって、ここの例では、次を試してください。
map("state")
map("state", add = TRUE, region = c("texas"), density=10, fill=TRUE)
map("state", add = TRUE, region = c("california"), fill=TRUE)
ここでアイデアを得ました: 地理空間ポリゴンをパターンで埋める - R
于 2014-07-29T19:06:19.403 に答える
3
状態データを保存して再プロットすることで、これを機能させることができます。polygon
状態ポリゴンの輪郭が、それ自体を2倍にすることなく正しい順序で描画されるように、少し手を加える必要があります。必要な操作の量は、必要な状態ポリゴンによって異なります。この場合、私はテキサスとニューメキシコの国境を逆転させなければなりませんでした。
library(maps)
map("state")
tempplot <- map("state", add = TRUE, region = c("texas"),plot=FALSE)
# fix the border with new mexico to draw it in the correct order
tempplot$x[829:861] <- tempplot$x[861:829]
tempplot$y[829:861] <- tempplot$y[861:829]
polygon(
na.omit(tempplot$x),
na.omit(tempplot$y),
border=1,
density=10
)
map("state", add = TRUE, region = c("california"), fill=TRUE, col="black")
于 2013-01-29T00:52:21.477 に答える
1
これは良いスタートになるはずです。
library(maps)
map('state')
map("state", col = "black", fill = TRUE, add = TRUE, region = c('california'))
map("state", col = "red", fill = TRUE, add = TRUE, region = c('texas'))
PS:クロスハッチの塗りつぶしパターンは一般的に不承認です。だから私はここでテキサスを赤で塗りつぶします。
編集
1つの選択肢は、状態を区別するためにltyとlwdで遊ぶことです。トリッキーに見えますが、結果は明らかです。
map("state", lty = 3)
map("state", col = "black", fill = TRUE, add = TRUE, region = c('california'))
map("state", lty=1,lwd = 3, fill = FALSE, add = TRUE, region = c('texas'))
于 2013-01-29T00:23:25.763 に答える