目的

地価公示(ポイント)の大きさを変えることにより,地価が高い箇所を強調表現(地価が低い箇所は抑制表現).ポイントはバブル(泡)と言い換えられ,バブルを使った図はバブルチャートとよばれる.地図の場合はバブルマップとよぶ.

パッケージ:sftidyverse

library(sf)
library(tidyverse)

地価公示の可視化

ポイントデータによる地価の可視化で作成した図3:神奈川県地価(2022年)を再現.

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

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

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

    • ダウンロードしたZIPファイルは同じフォルダ(ディレクトリ)に納め,ZIPファイルを選択 > 右クリック > すべて展開 > 展開先の選択とファイルの選択 > 展開を実行する.展開後は最初にダウンロードしたZIPファイルを削除.
    • シェープファイルの読込(read_sf):行政区域のオブジェクト名をKanagawa_map,地価公示のオブジェクト名をKanagawa_lpとする.
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')

データのソート

地価(L01_006)が高いポイントの色が上にくるよう順番を変更(arrange).

  • データ名はKanagawa_lpのまま.
Kanagawa_lp %>%
  arrange(L01_006) -> 
  Kanagawa_lp

再現図形

my_breaks <- c(50, 100, 200, 400)

#神奈川県地価の可視化
ggplot()+
  geom_sf(data=Kanagawa_map, fill="white")+
  geom_sf(data=subset(Kanagawa_lp, L01_006/10000>=25),
          aes(color=L01_006/10000),
          size=0.9)+
  scale_color_viridis_b(option="G", direction=-1,
                        trans="log10",
                        breaks=my_breaks)+ 
  geom_sf(data=Kanagawa_map, fill="NA")+
  labs(color="万円/㎡",
       caption="出典:国土数値情報(行政区域データ,地価公示データ)")+
  ggtitle("神奈川県地価(2022年)")+
  theme_bw()

バブルマップによる可視化

地価公示ポイント(バブル)の大きさを変えるために,aes(size)を利用する.これを活かすために,地価公示ポイント(x軸が経度,y軸が緯度)の変数を作成.

  • 地価公示ポイントは緯度経度により表現される.この情報は列名geometryにすでに納められている.
    • select():列の抽出.
    • オブジェクト名(Kanagawa_lp1)を変更して,head()で中身を確認.
#geometry抽出,データ名変更
Kanagawa_lp1 <- Kanagawa_lp %>%
  select(geometry)

#最初の6行
Kanagawa_lp1 %>% 
  head()
geometry
POINT (139.6507 35.20473)
POINT (139.2251 35.41038)
POINT (139.1146 35.25959)
POINT (139.3062 35.46262)
POINT (139.247 35.3452)
POINT (139.4259 35.40653)
  • ↑の列の中身(成分)を見ると,緯度経度の両方が含まれている.
    • st_coordinates():座標を取得するように指示.ここでは,括弧内の1番目の数値(経度)をx,2番目の数値(緯度)をyとするように指示.
    • オブジェクト名はKanagawa_lpのまま.
    • 中身を確認するため,select()を用いて必要な列の抽出.
    • オブジェクト名(Kanagawa_lp2)を変更して,head()で中身を確認.
#もとのデータで作業
Kanagawa_lp <- Kanagawa_lp %>%
  mutate(x=st_coordinates(geometry)[, 1],
         y=st_coordinates(geometry)[, 2]) 
 
#geometry,緯度経度の抽出,データ名変更
Kanagawa_lp2 <-
  Kanagawa_lp %>%
  select(geometry, x, y)

#最初の6行
Kanagawa_lp2 %>% 
  head()
geometry x y
POINT (139.6507 35.20473) 139.6507 35.20473
POINT (139.2251 35.41038) 139.2251 35.41038
POINT (139.1146 35.25959) 139.1146 35.25959
POINT (139.3062 35.46262) 139.3062 35.46262
POINT (139.247 35.3452) 139.2470 35.34520
POINT (139.4259 35.40653) 139.4259 35.40653
  • aes(x=x, y=y)x軸を↑で作成したxの値を,y軸を↑で作成したyの値を使うように指示.これにより,泡(地価ポイント)の位置(緯度経度)が確定する.
  • aes(color=, size=)で泡(地価ポイント)の色(color)と大きさ(size)を指示.
    • aes(size=L01_006/10000):泡(地価ポイント)の大きさを2022年の地価(L01_006)の高低で表現できるようにに指示.
    • ここでは単位を万円/㎡にするためにL01_006を1万(10000)で割る.
    • alphaで泡の色の透明度を調整.
  • guide="legend":凡例を制御.指示しない場合,colorsizeの凡例が別々に表現される.
  • scale_size_area(max_size=7)で泡の大きさの最大値を指示.
  • x=""y=""を記すことで,x軸とy軸のラベル削除.
my_breaks <- c(50, 100, 200, 400, 800, 1600)

#神奈川県地価の可視化
ggplot()+
  geom_sf(data=Kanagawa_map, fill="white")+
  geom_point(data=subset(Kanagawa_lp, L01_006/10000>=25), 
             aes(x=x, y=y,
                 color=L01_006/10000,
                 size=L01_006/10000),
             alpha=0.75)+
  scale_color_viridis_b(option="G", direction=-1,
                        trans="log10",
                        breaks=my_breaks,
                        guide="legend")+
  scale_size_area(max_size=7,
                  breaks=my_breaks)+ 
  geom_sf(data=Kanagawa_map, fill="NA")+
  labs(color="万円/㎡", size="万円/㎡", 
       x="", y="",
       caption="出典:国土数値情報(行政区域データ,地価公示データ)")+
  ggtitle("神奈川県地価(2022年)")+
  theme_bw()

川崎市の例

神奈川県の行政区域データ及び地価公示データから川崎市だけを抜き出し,可視化.

  • 行政区域についてはN03_003から川崎市を識別.
  • 地価についてはL01_022に川崎市の行政区域のコード(1413114137)が示されている.
my_breaks <- c(50, 100, 200, 400)

#川崎市地価の可視化
ggplot()+
  geom_sf(data=subset(Kanagawa_map, N03_003=="川崎市"), 
          fill="white")+
  geom_point(data=subset(Kanagawa_lp, L01_006/10000>=25 & 
                        L01_022>=14131 & L01_022<=14137),
             aes(x=x, y=y, 
                 color=L01_006/10000,
                 size=L01_006/10000),
             alpha=0.75)+
  scale_color_viridis_b(option="G", direction=-1,
                        trans="log10",
                        breaks=my_breaks,
                        guide="legend")+
  scale_size_area(max_size=6, 
                  breaks=my_breaks)+
  geom_sf(data=subset(Kanagawa_map, N03_003=="川崎市"), 
          fill="NA")+
  labs(color="万円/㎡", size="万円/㎡", 
       caption="出典:国土数値情報(行政区域データ,地価公示データ)")+
  ggtitle("川崎市地価(2022年)")+
  theme_void()

参考ウェブサイト

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