読者です 読者をやめる 読者になる 読者になる

300億円欲しい

メジャーリーグのデータ解析します

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

こうなります.
f:id:gg_hatano:20130921123137p:plain

ちゃんと世界地図になっています.

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

こうなります.
f:id:gg_hatano:20130921124636p:plain
いい日本ですね.

ところで, です.
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

こうなります.
f:id:gg_hatano:20130921125242p:plain
いいアメリカですね.
他にもitaly, nz, ...などがあるみたいです.

http://docs.ggplot2.org/0.9.3/map_data.html

以上です.