sapporor#5 leafletでボロノイ図を描く
TRANSCRIPT
オレンジ色のコンビニはどうしてあんなにつよいんだろう?
#SappoRo.R @WAFdata 1
・ Twitter : @WAFdata・ Blog : http://wafdata.hatenablog.com・ R 歴 : 4 年・北海道歴: 4 年
◎自己紹介
2{ggplot2}
・ OL 1 年目・仕事で R はつかいません・コードすら書きません・ R の script をかく・ R で絵をかく・ R のなやみをかかえる
●Work ●Hobby
●Other
◎おしながき
3{personograph}
なぜ某オレンジ色のコンビニは北の大地で強いのか知りたい
コンビニの出店状況を ボロノイ分割で把握したい
分割結果を {leaflet}で可視化したい
4
そもそもボロノイ分割とは
5
点が5つあるとします。
6
とりあえず各拠点を結びます。 =ドロネー点
7
おもむろに各線分に対する垂直二等分線を引きます。
8
そっと最初の線を消します。
9
残った線で囲まれた領域がボロノイ領域です。
10
◎材料【データ取得】 【 Data構造】 ・ {rvest}
【データ整形】 ・ {dplyr} ・ {magrittr}
【ボロノイ分割】 ・ {deldir}
【描画】 ・ {ggplot2} ・ {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
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
タイル番号分割対象(母点) タイルの頂点座標
13
やってみた( http://rpubs.com/WAFdata_kudo/126335)
14
◎まとめ・どうやら某オレンジのコンビニは「穴場」なエリアをめがけて出店していそう。 →コンビニ密集地よりも郊外が主戦場・ {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…
16
Enjoy!