1 目的

行政区域(ポリゴン)に地価公示(ポイント)を重ねる.

ライブラリ:sftidyverseviridis

library(sf)
library(tidyverse)

#地価の色付けに使用
library(viridis)

2 地価公示ポイントの可視化

シェープファイルのダウンロード

  • 国土数値情報ダウンロードサービス > 行政区域(ポリゴン) > 神奈川県 > 令和3年

  • 国土数値情報ダウンロードサービス > 地価公示(ポイント) > 神奈川県 > 「神奈川県」データのダウンロード > 世界測地系 令和4年

    • ダウンロードしたZIPファイルは同じフォルダ(ディレクトリ)に納め,ZIPファイルを選択 > 右クリック > すべて展開 > 展開先の選択とファイルの選択 > 展開を実行する.展開後は最初にダウンロードしたZIPファイルを削除.
    • シェープファイルの読込(read_sf()):行政区域をKanagawa_map,地価公示をKanagawa_lpと名付ける.
    • 必要に応じて各種ファイルを読み込む際にオプション(encoding="cp932")で日本語の文字化けを防ぐ.最新のファイルはオプションなしでも問題ない模様.
#神奈川県の行政区域
Kanagawa_map<-
  read_sf("N03-20210101_14_GML/N03-21_14_210101.shp")

#神奈川県の地価
Kanagawa_lp<-
  read_sf("L01-22_14_GML/L01-22_14.shp")

参考

神奈川県の地理に詳しくない人のために次の図に行政区域の地名を示す.なお,神奈川県は3つの政令指定都市(横浜市,川崎市,相模原市)と6つの群(愛甲郡,足柄上郡,足柄下郡,高座郡,中郡,三浦郡)が存在.ここでは参考に横浜市(青),川崎市(水色),相模原市(緑)を示す.

地価公示ポイント

黒丸が地価公示ポイント.

  • 下記の図では,神奈川県の行政区域の地図(Kanagawa_map:背景白fill="white",枠黒)の上に地価公示のポイント(調査地点)地図(Kanagawa_lp)を重ねている.
    • size:ポイントの大きさを指示.
ggplot()+ 
  geom_sf(data=Kanagawa_map, fill="white")+
  geom_sf(data=Kanagawa_lp, size=0.3)+
  ggtitle("神奈川県の地価公示ポイント(2022年)")

3 地価の色付け

地価の高低を表現するためにポイント(上記の地図の黒丸)にグラディエーション効果を付ける.地価公示データには2022年度(令和4年度)の地価(公示価格)とそれ以前(昭和59(1984)年度)からの地価が記載.単位は円/㎡.ここでは2022年(正確には年度だが西暦で表す)の地価(L01_006)を利用する.

  • aes(color=L01_006/10000)でポイントを2022年の地価で埋めるように指示.ポリゴン(面)データの場合はfillを利用したが,ポイント(点)データの場合はcolor1
    • ここでは単位を万円/㎡にするためにL01_006を1万(10000)で割る.
  • scale_color_viridisaes()colorに揃える)でポイントに埋める数値の色をmakoG)に指示.
    • direction=-1を指示しないと,色付かない.このオプションは必要に応じて対処すればよい.
#地価公示ポイントの色付け
ggplot()+ 
  geom_sf(data=Kanagawa_map, fill="white")+
  geom_sf(data=Kanagawa_lp,
          aes(color=L01_006/10000),
          size=0.5)+
  scale_color_viridis(option="G",
                      direction=-1)+ 
  geom_sf(data=Kanagawa_map, fill="NA")+
  labs(color="万円/㎡")+
  ggtitle("神奈川県の地価(2022年)")+
  theme_bw()

注意

  • 上記の図では,最背面の神奈川県の行政区域の地図(背景白色,枠黒)の上に色付けされたポイント・データを重ね,さらに神奈川県の行政区域の地図(ただし背景無色,枠黒)を再度上に重ねている.最前面の行政区域はポイントによって行政区域が見えなくなることを防いでいる.

データのソートと最終図形

上の図は,ポイントが近く重なり合う場合に,順番が後ろに位置するデータが上に表記される.そのため,目立たせたいポイントが隠れる場合がある.ここでは地価(L01_006)が高いポイントの色が上にくるよう順番を変更(arrange()).

  • データの名前は再びKanagawa_lpと名付ける.
Kanagawa_lp %>%
  arrange(L01_006) -> 
  Kanagawa_lp

再度,「#地価公示ポイントの色付け」の箇所のコードを打ち込み,最終図形を示す.

4 応用例

4.1 住宅地地価の可視化

土地の用途は都市計画法により用途区分(住宅地,商業地,工業地など)の制限を受けている.L01_001に「住宅地」(000)を識別するコードがあるため,これを利用し,データから住宅地だけ取り出し,住宅地の地価を可視化.

  • filter()を用いて,元の地価のデータセット(Kanagawa_lp)から「住宅地」(L01_001=="000")のポイントだけを取り出す.
    • 取り出したデータをResident_area_lpと名付ける.
  • 上で利用してきたKanagawa_lpのデータをResident_area_lpに置き換え,ggplot()で可視化.
#住宅地ポイントの抽出
Kanagawa_lp %>%
  filter(L01_001=="000") -> 
  Resident_area_lp

#住宅地地価の可視化
ggplot()+ 
  geom_sf(data=Kanagawa_map, fill="white")+
  geom_sf(data=Resident_area_lp,
          aes(color=L01_006/10000),
          size=0.8)+
  scale_color_viridis(option="G",
                      direction=-1)+ 
  geom_sf(data=Kanagawa_map, fill="NA")+
  labs(color="万円/㎡")+
  ggtitle("住宅地地価(2022年)")+
  theme_bw()

4.2 地価変化率の可視化

地価公示データには2022年度(令和4年度)の地価(公示価格)とそれ以前(昭和59(1984)年度)からの地価が記載.そこで,地価変化率を計算し,可視化.

  • 2012年~2022年(10年前から)の地価変化率を計算する.
    • 2012年の地価はL01_090
    • 2022年のポイントで2012年時点では計測されず,ポイントがなかった場合は地価が(恐らく)0になっている.0地点については,計測されなかった点を考慮して変化率は計算しないようにする.そのために,0を欠損値NAに置き換える.これにより,NA地点の地価変化率は計算できなくなる.コードは2012年の地価(na_if()関数内のL01_090)の列にある数値がもしも0ならばNAに置き換えなさいと指示.
    • 地価変化率(ここではlp_rateと表現する)は(L01_006-L01_090)/L01_090)*100Kanagawa_lpのデータに加え(mutate),新しいデータをKanagawa_lp2と名付ける.
    • 地価変化率を地図に示すとき,計算された地価変化率のポイントだけでなく,計算されなかったポイント(NA地点)も出現する.これを避けるために,地価変化率のNAをデータ(Kanagawa_lp2)から削除し,再びKanagawa_lp2と名付ける.コードは,lp_rateの列にあるNAを除いて(!)抽出(filter())するように指示.
#0から欠損値NAへの置き換え
Kanagawa_lp %>% 
  mutate(L01_090=na_if(L01_090, 0)) -> 
  Kanagawa_lp

#地価変化率の追加
Kanagawa_lp2<- 
  mutate(Kanagawa_lp,
         lp_rate=((L01_006-L01_090)/L01_090)*100)

#地価変化率の欠損値NAの列をデータから削除(NAを含まないデータ作成)
Kanagawa_lp2 %>% 
  filter(!is.na(lp_rate)) -> 
  Kanagawa_lp2
  • ggplot()で地価変化率(Kanagawa_lp2lp_rate)を可視化.
  • scale_color_gradient2()は中間値(初期値は0)より大きな値と小さな値で色を塗り分けることを可能にする関数.
    • ここでは,変化率0を白,負を青,正を赤に設定.ただし,muted()は色を落ち着かせる際に利用.muted()利用のため,scalesパッケージを呼び出す(library)
    • muted()は指示しなくても問題ない.その場合は単にlow=blueと指示.利用しない場合はscalesパッケージを呼び出す必要もない.
    • なお,変化率0の白いポイントは背景も白(再背面のKanagawa_map)のためわかりにくい.変化率0を目立たせたい場合は,背景を初期値に戻す(fill="white"を削除)か,ポイントの枠を黒くすることが考えられる.2
#muted()利用
library(scales) 

#地価変化率の可視化
ggplot()+
  geom_sf(data=Kanagawa_map, fill="white")+ 
  geom_sf(data=Kanagawa_lp2, 
          aes(color=lp_rate),
          size=0.9)+ 
  scale_color_gradient2(low=muted("blue"), 
                        mid="white", 
                        high=muted("red"))+
  geom_sf(data=Kanagawa_map, fill="NA")+ 
  labs(color="%")+
  ggtitle("2012年~2022年の地価変化率")+
  theme_bw()

4.3 川崎市

神奈川県の行政区域データ及び地価公示データから川崎市だけを抜き出し,2022年度(令和4年度)の地価(公示価格)を可視化.

  • 行政区域についてはN03_003から「川崎市」を識別.
  • 地価についてはL01_022に川崎市の行政区域のコード(1413114137)が示されている.
#川崎市の行政区域の抽出
Kanagawa_map %>%
  filter(N03_003=="川崎市") ->
  Kawasaki_map

#川崎市の地価の抽出
Kanagawa_lp %>%
  filter(L01_022>=14131 & L01_022<=14137) ->
  Kawasaki_lp
  • theme():凡例の位置などの変更.
#川崎市地価の可視化
#凡例の目盛幅を対数変換
ggplot()+
  geom_sf(data=Kawasaki_map, fill="gray",
          alpha=0.7,
          color="gray60", linewidth=0.75)+
  geom_sf(data=Kawasaki_lp, 
          aes(color=L01_006/10000))+
  scale_color_viridis(option="G",
                      direction=-1,
                      trans="log10")+ 
  geom_sf(data=Kawasaki_map, fill="NA",
          color="NA")+
  labs(color="万円/㎡")+
  ggtitle("川崎市地価(2022年)")+
  theme_void()+
  theme(legend.position=c(0.85, 0.7),
        legend.background=element_rect(
        fill=NA, color=NA))

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