Rで地図を描きたい
地図上にデータをプロットしたいときってありますよね.
そのための第一段階として, 地図を描きます.
ggplot2パッケージを利用します.
library(ggplot2) world <- map_data("world") g <- ggplot() + geom_polygon(data = world, aes(x = long, y=lat, group = group), colour = "black", # 枠色の指定 fill ="orange") # 枠内色の指定 g
こうなります.
ちゃんと世界地図になっています.
map_data("world")ってなんですかね. 中身を覗いてみます.
> head(world, 20) long lat group order region subregion 1 -133.3664 58.42416 1 1 Canada <NA> 2 -132.2681 57.16308 1 2 Canada <NA> 3 -132.0498 56.98610 1 3 Canada <NA> 4 -131.8797 56.74001 1 4 Canada <NA> 5 -130.2492 56.09945 1 5 Canada <NA> 6 -130.0131 55.91169 1 6 Canada <NA> 7 -130.0050 55.92165 1 7 Canada <NA> 8 -130.0158 55.86499 1 8 Canada <NA> 9 -130.0144 55.42943 1 9 Canada <NA> 10 -130.1405 55.04836 1 10 Canada <NA> 11 -129.7897 55.50695 1 11 Canada <NA> 12 -129.6203 55.45945 1 12 Canada <NA> 13 -129.9827 55.00085 1 13 Canada <NA> 14 -129.8450 55.00418 1 14 Canada <NA> 15 -130.1519 54.84558 1 15 Canada <NA> 16 -130.1261 54.70836 1 16 Canada <NA> 17 -130.2747 54.70057 1 17 Canada <NA> 18 -130.0667 54.46056 1 18 Canada <NA> 19 -130.3364 54.57389 1 19 Canada <NA> 20 -130.4008 54.44864 1 20 Canada <NA>
long(軽度) とlat(緯度)について,
その点の国名(region) と 何か(subregion)が与えられているみたいです.
では, 日本のデータだけ取り出せる?
> japan <- subset(world, region=="Japan") > head(japan, 20) long lat group order region subregion 14738 142.1292 26.71192 245 14738 Japan Haha Jima 14739 142.1292 26.71192 245 14739 Japan Haha Jima 16296 138.5111 38.28109 323 16296 Japan Sado 16297 138.5394 38.07946 323 16297 Japan Sado 16298 138.2108 37.80943 323 16298 Japan Sado 16299 138.5120 38.29111 323 16299 Japan Sado 16300 138.5111 38.28109 323 16300 Japan Sado 17124 134.6058 34.08526 410 17124 Japan Shikoku 17125 134.6436 33.77890 410 17125 Japan Shikoku 17126 134.0958 33.30999 410 17126 Japan Shikoku 17127 133.5477 33.46526 410 17127 Japan Shikoku 17128 133.2269 33.15392 410 17128 Japan Shikoku 17129 133.0170 32.75502 410 17129 Japan Shikoku 17130 132.8822 32.75777 410 17130 Japan Shikoku 17131 132.7445 32.75525 410 17131 Japan Shikoku 17132 132.5228 32.88864 410 17132 Japan Shikoku 17133 132.5069 33.19334 410 17133 Japan Shikoku 17134 132.2697 33.42945 410 17134 Japan Shikoku 17135 132.1842 33.42779 410 17135 Japan Shikoku 17136 132.7725 33.94030 410 17136 Japan Shikoku
subregionには島の名前が入るみたいです. 母島や佐渡ヶ島が見えますね.
p <- ggplot() p <- p + geom_polygon(data = japan, aes(x=long, y=lat, group=group), fill = "orange", colour="black") p
こうなります.
いい日本ですね.
ところで, です.
map_data("world") で世界地図の情報が得られました.
他にどのような地図情報が得られるのでしょうか.
アメリカの州の位置情報stateがあるみたいです.
states <- map_data("state") q <- ggplot() q <- p + geom_polygon(data = states, aes(x=long, y=lat, group=group), fill = "orange", colour="black") q
こうなります.
いいアメリカですね.
他にもitaly, nz, ...などがあるみたいです.
http://docs.ggplot2.org/0.9.3/map_data.html
以上です.