8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rで地図を描く時便利な「maps, leaflet, NipponMap」

Posted at

地図を使ったデータの可視化って結構厄介でめんどくさい。
でも情報としては大変に伝わりやすいし、議論も行いやすい。

image.png

Rで地図を描くためのパッケージをちょこっと調べたところ「ggmap」が便利な様子だが...

#ggmap、クレジットカードが必要

library(ggmap)
get_map("Durham North Carolina", maptype = "roadmap", zoom = 10) 

image.png

APIkeyが必要。
別にお金はかからないみたいだけど無用に使われないようになのかクレジットカードの登録が必要になる

API keyめんどくさくね?

#そこで「maps」

library(maps)
#help(package='maps')
map()

太平洋中心世界地図が表示できる

image.png

国コード指定でzoomしたり

map('usa')

image.png

描画エリアに枠を付けたり

map('japan')
map.axes()

image.png

map('usa')
box()

image.png

日本の情報も確認したくなったらmapdataを追加インストールする

library(mapdata)
map('japan')
map.axes()

image.png

interiorが境を表示するオプション

map("japan", interior = FALSE)
map("japan", boundary = FALSE, lty = 2, add = TRUE)

image.png

経度緯度を調べるにはココを使う
いつものplotのようにxlim,ylimが経度緯度に対応しているので、東京周辺を範囲としてやれば

map("japan", interior = FALSE,xlim = c(138,141), ylim = c(34,36))
map("japan", boundary = FALSE, lty = 2, add = TRUE)
box()

image.png

pointsやtextも位置座標をもとに加えられるのでポインタを置くこともできる

points(139.888229,35.655622,col="red",pch=20)
text(139.888229,35.755622,"urayasu",col="red")

image.png

#白黒じゃ味気ない人に「leaflet」

背景が地図様になり、mapにピンを刺すaddMarkersなどもある。
描画範囲も与えたデータの範囲から自動でxlim,ylimが変化する。
さらには左上の拡大縮小を使って確認したい範囲に絞ることも簡単になる。

library(leaflet)
library(modeldata)

data(ames, package = "modeldata")

m <- leaflet()
m <- addTiles(m)
m <- addMarkers(m, 
                lng=ames$Longitude[1:10],
                lat=ames$Latitude[1:10], 
                popup=ames$Fence[1:10])
m

image.png

#日本だけなら「NipponMap」


library(NipponMap)
library(foreign)


population_jpn <- read.dbf(system.file("shapes/jpn.dbf", package="NipponMap"))

population_jpn

par(bg = "white")

jpn_map <- JapanPrefMap(col = sample(colours(), 47), border = gray(.8), axes = TRUE)
#JapanPrefMap(col = "grey")

symbols(jpn_map, 
        circles = sqrt(population_jpn$population*0.00000001), 
        inches = FALSE,
        fg = "black", 
        bg = "blue", 
        add = TRUE)

人口に対して円を描く

image.png

#以上

べんり

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?