このページについて

概要:このページでは、統計言語Rを用いた地図作成の方法に関する情報を蓄積します(ご使用は自己責任でお願いします).

親ページ:このページの親ページはRです。

目次

plot関数を用いた地図作成

以下,plot関数を用いた地図作成の備忘録として記す(論文で地図を作成する必要があったため).

シェープファイルのダウンロード

まずは,以下の手順で作図に必要なシェープファイルをダウンロードする.

  1. Natural Earthにアクセスして,Download -> Large scale data, 1:10m -> Physical -> Land -> Download landの順にクリックする.
  2. "ne_10m_land.zip"というzipファイルがダウンロードされるので,zipファイルを解凍する(解凍されるとフォルダ内に7つのファイルが出現する).
  3. Rを起動して,解凍したフォルダのパスをsetwd()に入力しておく(7つのファイルが存在しなければ以下の作業ができません).
setwd(/Users/HOME/Downloads/ne_10m_land) # 野田はMacを使用しておりますので,ダウンロードフォルダの直下にファイルを展開しています(Windowsユーザーは適宜変更して下さい).

シェープファイルの読み込み

次に,Rにシェープファイルの読み込ませる.

install.packages("maptools", dependencies=TRUE) # maptoolsパッケージのインストール
library(maptools) # maptoolsパッケージの読み込み
world <- readShapePoly("ne_10m_land.shp") # シェープファイルの読み込み(7つのファイルが揃っていないとエラーが出るので注意して下さい)

日本近辺の地図の表示

さらに,表示する地図の位置を特定する.

lonlim = c(120,150)   # 経度を設定する(日本近辺は東経120〜150度)
latlim = c(22,48)   # 緯度を設定する(日本近辺は北緯22〜48度)
plot(world, xlim=lonlim, ylim=latlim, axes=TRUE, xlab="Longitude", ylab="Latitude") # worldのうち,東経120〜150度,かつ北緯22〜48度の部分を表示する

地点の表示と地名入力

地点を表示すると同時に地名を入力するための手順を以下に示す.

  1. 表示したい地点の緯度経度をここで調べる(緯度経度は通常60進数であるので,Rで認識する10進数の緯度経度を調べなければならない).
  2. point関数で地点に"点"をつけ,segments関数を用いて適当な位置まで線を引く.
  3. text関数を用いてsegments関数を用いて引いた線の先に地名を入力する.

まずは,東京を入力してみる.

points(139.69167, 35.68944, pch=20) # 東京都の地点(ここでは都庁のある新宿区)
segments(139.69167, 35.68944, 142.69167, 37.68944, lwd=1, col="black") # 適当な位置まで線を引く
text(143.79167, 37.68944, labels="Tokyo", cex=0.75) # "Tokyo"と入力する

さらに,大阪を入力してみる.

points(135.52, 34.68639, pch=20) # 大阪府の地点(ここでは大阪市)
segments(135.52, 34.68639, 136.52, 32.68639, lwd=1, col="black") # 適当な位置まで線を引く
text(136.52, 32.18639, labels="Osaka", cex=0.75) # "Osaka"と入力する

出力結果の出力

以下のような地図が作成される.

添付ファイルの画像

ggplot2関数を用いた地図作成

(以下,適宜改訂していく)

Rの基本グラフィックス機能またはggplot2を使って地図を描くには

による解説が有用だと思われる.

Rmapを用いた地図作成

本家RjpWikiRmapを使った地図表示が非常に参考になる.

Reference


添付ファイル: filetokyo_osaka_map.jpg 239件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-03 (火) 02:37:39 (292d)