思っちゃったんだからしょうがない

統計学を学ぶ傍でひっそりとやっていきます。 #statistics #R

Rで日本地図を書く(3次元で)

かなりニッチな需要だと思いつつ、Rで3次元の中の平面に日本地図を書こう、ということをやっていきます。目的はと言いますと、天気予報なんかである、日本地図の対応する地点に観測された降雨量の棒グラフを書きたい、みたいなことがあって、今回はじゃあ3次元の中に平面の日本地図を書くというところまでやっていきます。

必要なパッケージは3つ、Nippon, spsurvey, rgl の2つです。とりあえず読み込みましょう

gistfa75446b9c7707ba6829d351f02361e9

Nipponは他の方のブログでもよく紹介されているように、日本地図を書いてくれる関数がありますが、この記事は、いやいや俺は座標の行列から日本地図を書きたいんだよ!っていう人向けでもありますね。

Nipponのパッケージを使えば地図がかける、つまり座標はこのパッケージの中にあるわけです。まずはそれを抽出していきましょう。そのために、Nipponパッケージがあるフォルダーにアクセスする必要があります。windowsのことはよくわからないのでごめんなさい。macの方は

/Library/Frameworks/R.framework/Versions/3.3/Resources/library/Nippon/shapes

ここにshpファイルがあって、その中にプロットに必要な情報が色々と入っています。

では、座標データだけ抽出していきましょう。次のコードを実行すればOKです。

giste07d64552229c7dbbaa125891e151fd4

これで座標を取り出せました。例えばこれを使って北海道をプロットするとこんな感じになります。

gist83ccd26a79fe22632aa844d6ece88e21

f:id:forest-of-sheep-and-steel:20161025235622p:plain

 あとは力技でちょっとカッコ悪いんですが、3次元平面にプロットしていくだけです。(三軸目の値は全て0にしています。)

gistde0302bc23bbbbb84dc95b42c60f99b3

どうしても、色々いじりたい場合はパッケージの関数一発で書くよりも、座標データだけ欲しい状況が出てくるわけです。こんな感じのニッチな需要を持っている人の役に立てばいいなーと思います。

結果はこんな感じでした。でもこの地図、沖縄がかなり省略されてるみたいですね。

f:id:forest-of-sheep-and-steel:20161026000122p:plain