行政区域(ポリゴン)に地価公示(ポイント)を重ねる.
ライブラリ:sf
,tidyverse
,viridis
シェープファイルのダウンロード
国土数値情報ダウンロードサービス > 行政区域(ポリゴン) > 神奈川県 > 令和3年
国土数値情報ダウンロードサービス > 地価公示(ポイント) > 神奈川県 > 「神奈川県」データのダウンロード > 世界測地系 令和4年
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
:ポイントの大きさを指示.地価の高低を表現するためにポイント(上記の地図の黒丸)にグラディエーション効果を付ける.地価公示データには2022年度(令和4年度)の地価(公示価格)とそれ以前(昭和59(1984)年度)からの地価が記載.単位は円/㎡.ここでは2022年(正確には年度だが西暦で表す)の地価(L01_006
)を利用する.
aes(color=L01_006/10000)
でポイントを2022年の地価で埋めるように指示.ポリゴン(面)データの場合はfill
を利用したが,ポイント(点)データの場合はcolor
.1
L01_006
を1万(10000
)で割る.scale_color_viridis
(aes()
のcolor
に揃える)でポイントに埋める数値の色をmako
(G
)に指示.
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
と名付ける.再度,「#地価公示ポイントの色付け」の箇所のコードを打ち込み,最終図形を示す.
土地の用途は都市計画法により用途区分(住宅地,商業地,工業地など)の制限を受けている.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()
地価公示データには2022年度(令和4年度)の地価(公示価格)とそれ以前(昭和59(1984)年度)からの地価が記載.そこで,地価変化率を計算し,可視化.
L01_090
.0
になっている.0
地点については,計測されなかった点を考慮して変化率は計算しないようにする.そのために,0
を欠損値NA
に置き換える.これにより,NA
地点の地価変化率は計算できなくなる.コードは2012年の地価(na_if()
関数内のL01_090
)の列にある数値がもしも0
ならばNA
に置き換えなさいと指示.lp_rate
と表現する)は(L01_006-L01_090)/L01_090)*100
.Kanagawa_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_lp2
のlp_rate
)を可視化.scale_color_gradient2()
は中間値(初期値は0
)より大きな値と小さな値で色を塗り分けることを可能にする関数.
muted()
は色を落ち着かせる際に利用.muted()
利用のため,scales
パッケージを呼び出す(library
)muted()
は指示しなくても問題ない.その場合は単にlow=blue
と指示.利用しない場合はscales
パッケージを呼び出す必要もない.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()
神奈川県の行政区域データ及び地価公示データから川崎市だけを抜き出し,2022年度(令和4年度)の地価(公示価格)を可視化.
N03_003
から「川崎市」を識別.L01_022
に川崎市の行政区域のコード(14131
~14137
)が示されている.#川崎市の行政区域の抽出
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による地理空間データの可視化
立地適正化計画区域内の地価の可視化ではポイントデータをfill
を利用して色付け.↩︎