1 目的

NipponMapに他のウェブサイトの情報から作成した都道府県別データを加え,可視化.今回はユニクロとサッカーショップKAMOの店舗数を表現する.

ライブラリ:sftidyverseNipponmap

library(sf)
library(tidyverse)
library(NipponMap)

2 店舗数データの作成

シェープファイル

  • これまでの例(11.1を参照)のようにNipponMapを読込.
Nippon_map<-read_sf("shapes/jpn.shp", 
                     crs="WGS84")

ユニクロとサッカーショップKAMOの店舗数データの作成

  • ユニクロ(アクセス日:2022-04-15)とサッカーショップKAMO(アクセス日:2022-04-15)のウェブサイトから都道府県別の舗数を調べ,都道府県の順番に気をつけながらデータ(拡張子を.csvとする)を「自分で」作成する.Excelで保存する場合は,CSV(コンマ区切り)(*.csv)を選択. ここでは,stores.csvと名付ける.
    • stores.csvを作業ファイルに保存.
    • read.csv:CSVファイルの読込.Storesと名付ける.
#csvファイルの読込
Stores<-read.csv("stores.csv")

#上から6行のデータの中身
Stores %>% 
  head()

データの加工及び結合

  • Nippon_mapSP_ID<chr>(character:文字列),StoresSP_ID<int>(integer:数値)のため結合できない.
    • そこで,Storesの`SP_IDを文字列に変換.データ名はStoresのまま.
  • 地図データ(Nippon_map)と店舗数データ(Stores)をSP_IDで結合(left_join)し,Stores_mapと名付ける.
#データ結合のため文字列に変更
Stores %>% 
  mutate(SP_ID=as.character(SP_ID)) ->
  Stores

#地図データと店舗数データの結合
Stores_map<-
  left_join(Nippon_map, Stores, 
            by=c("SP_ID"))

3 店舗数の可視化

ユニクロ店舗数の完成図

  • 今回は色分けにviridisを利用.1
    • option="G"option="mako"に等しい.
  • labs()内に出典を表記(caption).
ggplot()+ 
  geom_sf(data=Stores_map, 
          aes(fill=uniqulo))+
  scale_fill_viridis_c(option="G", direction=-1)+
  labs(fill="店舗数",
       caption="NipponMap 
       出典:UNIQLO店舗検索")+
  ggtitle("都道府県別ユニクロ店舗数")+
  theme_bw()

サッカーショップKAMO店舗数の完成図

ggplot()+ 
  geom_sf(data=Stores_map, 
          aes(fill=kamo))+
  scale_fill_viridis_c(option="G", direction=-1)+
  labs(fill="店舗数", 
       caption="NipponMap 
       出典:サッカーショップKAMO店舗一覧")+
  ggtitle("都道府県別サッカーショップKAMO店舗数")+
  theme_bw()

4 応用

4.1 色のマニュアル指定

サッカーショップは扱っている商品に偏り(サッカー商品のみ)があるため,人口の多い都道府県のみに立地する傾向.多くの都道府県において店舗がゼロ.

  • そこで,店舗数ゼロの都道府県を白色で埋める.
    • その他の階級の色もマニュアル指定.
  • これまで使用してきたmakoを利用するため,カラーコードを調べる.
#カラーコードを調べるため.
library(scales)

#カラーコードの表示(4色).
show_col(viridis_pal(option="G")(4))

完成図

  • 色分けに利用する色を自分で作成し,my_colorsと名付ける.右の色が最小値を反映し,左の色が最大値を反映する.
    • 白色(white)以外は上のカラーコードを利用.
    • scale_fill_gradientn():マニュアルで色を決めたい場合に利用.色分け(colors)にmy_colorsを適用するように指示.
#色のマニュアル指定
my_colors<-
  c("white", "#38AAACFF", "#40498EFF", "#0B0405FF")

ggplot()+ 
  geom_sf(data=Stores_map, 
          aes(fill=kamo)) +
  scale_fill_gradientn(colors=my_colors)+
  labs(fill="店舗数",
       caption="NipponMap 
       出典:サッカーショップKAMO店舗一覧")+
  ggtitle("都道府県別サッカーショップKAMO店舗数")+
  theme_bw()

Rによる地理空間データの可視化


  1. 必要に応じてパッケージをダウンロード(install.packages("viridis")し,library(viridis)で呼び出す.↩︎