sapporor#5 leafletでボロノイ図を描く

16
オオオオオオオオオオオ オオオオオオオオオオオオオオオ#SappoRo.R @WAFdata 1

Upload: wakanakudo

Post on 21-Jan-2017

3.650 views

Category:

Data & Analytics


1 download

TRANSCRIPT

Page 1: SappoRoR#5 Leafletでボロノイ図を描く

オレンジ色のコンビニはどうしてあんなにつよいんだろう?

#SappoRo.R @WAFdata 1

Page 2: SappoRoR#5 Leafletでボロノイ図を描く

・ Twitter : @WAFdata・ Blog : http://wafdata.hatenablog.com・ R 歴    : 4 年・北海道歴: 4 年

◎自己紹介

2{ggplot2}

・ OL   1 年目・仕事で R はつかいません・コードすら書きません・ R の script をかく・ R で絵をかく・ R のなやみをかかえる

●Work ●Hobby

●Other

Page 3: SappoRoR#5 Leafletでボロノイ図を描く

◎おしながき

3{personograph}

なぜ某オレンジ色のコンビニは北の大地で強いのか知りたい

 コンビニの出店状況を ボロノイ分割で把握したい

 分割結果を  {leaflet}で可視化したい

Page 4: SappoRoR#5 Leafletでボロノイ図を描く

4

そもそもボロノイ分割とは

Page 5: SappoRoR#5 Leafletでボロノイ図を描く

5

点が5つあるとします。

Page 6: SappoRoR#5 Leafletでボロノイ図を描く

6

とりあえず各拠点を結びます。  =ドロネー点

Page 7: SappoRoR#5 Leafletでボロノイ図を描く

7

おもむろに各線分に対する垂直二等分線を引きます。

Page 8: SappoRoR#5 Leafletでボロノイ図を描く

8

そっと最初の線を消します。

Page 9: SappoRoR#5 Leafletでボロノイ図を描く

9

残った線で囲まれた領域がボロノイ領域です。

Page 10: SappoRoR#5 Leafletでボロノイ図を描く

10

◎材料【データ取得】        【 Data構造】 ・ {rvest}

【データ整形】 ・ {dplyr} ・ {magrittr}

【ボロノイ分割】 ・ {deldir}

【描画】 ・ {ggplot2} ・ {leaflet}

Page 11: SappoRoR#5 Leafletでボロノイ図を描く

11

◎{deldir}のハナシ①# ボロノイ分割deldir::deldir(x = df$lon, y = df$lat, rw = NULL, digit = 6, sort =TRUE, ・・・ )

緯度経度指定 分割範囲の固定

List of 9   $ delsgs :dataframe   ←分割されたドロネー点の情報!   $ dirsgs :dataframe     ←ボロノイ分割の結果!  $ n.data   : int $ n.dum   : int   $ del.area : num   $ dir.area : num  $ rw : num  $ ind.orig : int

Page 12: SappoRoR#5 Leafletでボロノイ図を描く

12

# 分割した tile を取得deldir::tile.list(result_deldir)

◎{deldir}のハナシ②

> tilelist[[721]]  $ptNum    [1] 721  $pt        x        y      141.3738   43.0438  $x   [1] 141.3774 141.3742 141.3726 141.3700 141.3699 141.3741 141.3743    $y   [1] 43.04427 43.04729 43.04783 43.04516 43.04426 43.04001 43.04001   $bp [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE

タイル番号分割対象(母点) タイルの頂点座標

Page 13: SappoRoR#5 Leafletでボロノイ図を描く

13

やってみた( http://rpubs.com/WAFdata_kudo/126335)

Page 14: SappoRoR#5 Leafletでボロノイ図を描く

14

◎まとめ・どうやら某オレンジのコンビニは「穴場」なエリアをめがけて出店していそう。  →コンビニ密集地よりも郊外が主戦場・ {leaflet} は動的なので拡大して細部まで見られるのがいいですね・・・

Page 15: SappoRoR#5 Leafletでボロノイ図を描く

15

◎参考などなど・ leaflet for R

(https://rstudio.github.io/leaflet/) コードも実行結果もたくさん載ってます。たのしい。・ Leaflet-providers Demo

(https://leaflet-extras.github.io/leaflet-providers/preview/)addProviderTiles() に指定出来る地図テーマを見られます。たのしい。量が豊富。時間泥棒。

・オープンデータを解析する - ggplot2 を用いたボロノイ分割で厚木市のコンビニ出店を見てみよう!ー Data Science by R and Python(http://tomoshige-n.hatenablog.com/entry/2014/08/15/002345)

・ボロノーイ – Rpubs @dichika(https://rpubs.com/dichika/voronoi)

Special thanks…

Page 16: SappoRoR#5 Leafletでボロノイ図を描く

16

Enjoy!