[R program]Rで地図を描く
Rでリスクマップなんかを作りたいとき、(頑張れば)地図を描くことができます。
だけどRの地図関連は更新が激しくて、以前使えた関数が使えなくなることが多いです。
RjpwikiにはここでRmapパッケージが紹介されていますが、今は使えません。
なので去年の12月にmaptoolsパッケージでプログラムを作っていたのですが、今回実行してみたら、なんと使えなくなっていました(ショック!><)。
また試行錯誤して関数を見つけたところ、spsurveyパッケージを使うと何とか実行出来ました。
ですが地図を描く場合は、まずshpファイル(シェープファイル)が必要になります。
これは日本のGISのページからダウンロードできます(私が以前ダウンロードしたときとURLが変わったようですので、申し訳ないですが詳細URLは探してくださいorz)。
頑張ってプログラムが実行できれば、このような地図が描けます。
シェープファイルは全世界のものもありますので、いろいろ試してみて下さい(google earthとRも連動しているようですが、まだやり方が分からないです)。
今回のコードはこちら↓
#------Rjpwiki(http://www.okada.jp.org/RWiki/?Rmap%A4%F2%BB%C8%A4%C3%A4%BF%C3%CF%BF%DE%C9%BD%BC%A8) #------http://www.esrij.com/からシェープファイルをダウンロードする setwd("D:/R地図") #shpファイルのある親ディレクトリ library(spsurvey) jpn <- read.shape("japan_shape/japan_ver52.shp") #数分かかる plot(jpn) as.data.frame(jpn) KenName <- "北海道" KenPoly <- jpn[jpn$PREF == KenName, ] plot(KenPoly) #------Global Administrative Areasのシェープファイル #---県単位の地図 jpn.GA <- read.shape("japan_shape/JPN_adm1.shp") #数分かかる plot(jpn.GA, xlim=c(128, 146), ylim=c(30, 45), f=grey(c(1:47)/47)) #------日本地図 #---色を塗りたい県のフラグ flag_ken=c(1,0,0,0,0,0,1,1,0,0,0,1,0,1,0,0,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1, 0,0,0,0,0,0,0,1,0,0,0,1,0,0) par(mar=c(0,0,0,0)) plot(jpn.GA, xlim=c(128, 146), ylim=c(30, 45), col=flag_ken*8, xlab="", ylab="") #色をグレーにするために8を掛けている points(141, 38, lwd=20, col="red") #石巻市の緯度と経度