NipponMap

Published

March 31, 2026

パッケージの概要

NipponMapは、サークルカルトグラムを含むコロプレス地図作成のための日本のデジタル地図データです。コロプレス地図とは、地図上で統計による階級区分を表現する方法の一つで、統計値を複数の階級に区分し、都道府県等の区域別に、各区域の階級を色分けによって表す地図のことです。カルトグラムとは統計データの大小を地図上の面積や距離の伸縮により表現したものであり、サークルカルトグラムは区域を円で示し、円の大小で統計データの大小を表現したものです。

日本地図の描画

関数JapanPrefMapは、都道府県で区分された単純な日本地図を描画できます。

 JapanPrefMap()

当関数は都道府県のJISコード順に色ベクトルを受け取ります。都道府県別の公式統計はJISコード順が多いので、order関数やmerge関数を適用する手間がなく、簡単にコロプレス地図の色列を作ることができます。

次のコードでは、RColorBrewerパッケージの「Set1」というパレットを使って都道府県をJISコード順に赤、青、緑、紫の4色に色分けしています。例えば、JISコードが1の北海道は赤、2の青森県は青、3の岩手県は緑、4の宮城県は紫・・・となります。

cols <- RColorBrewer::brewer.pal(4,"Set1") #4色の「Set1」パレットを取得
print(cols)
[1] "#E41A1C" "#377EB8" "#4DAF4A" "#984EA3"
JapanPrefMap(col = cols, border = gray(0.8), axes = TRUE) #border = gray(0.8):都道府県の境界線を明度0.8のグレーにする、axes = TRUE:地図の軸を表示する

コロプレス地図の作成

foreignパッケージを使って、NipponMap内のshapes/jpn.dbfファイルから日本の地図データのDBFファイルを読み込み、当データに含まれる2010年国勢調査による人口のデータセットからコロプレス地図を作成します。

#foreignパッケージを使ってDBFファイルを読み込み
dat <- foreign::read.dbf(system.file("shapes/jpn.dbf", package="NipponMap"))
head(dat, 15)
   SP_ID jiscode      name population   region
1      1      01  Hokkaido    5506419 Hokkaido
2      2      02    Aomori    1373339   Tohoku
3      3      03     Iwate    1330147   Tohoku
4      4      04    Miyagi    2348165   Tohoku
5      5      05     Akita    1085997   Tohoku
6      6      06  Yamagata    1168924   Tohoku
7      7      07 Fukushima    2029064   Tohoku
8      8      08   Ibaraki    2969770    Kanto
9      9      09   Tochigi    2007683    Kanto
10    10      10     Gunma    2008068    Kanto
11    11      11   Saitama    7194556    Kanto
12    12      12     Chiba    6216289    Kanto
13    13      13     Tokyo   13159388    Kanto
14    14      14  Kanagawa    9048331    Kanto
15    15      15   Niigata    2374450    Chubu
op <- par(bg = "lightblue") #プロットの背景色を水色(skyblue)に設定
p <- JapanPrefMap(col = "ivory") #日本地図をアイボリー(ivory)で描画
col <- c("blue", "skyblue") #円の枠の色と背景色を設定

pop <- dat$population / 1e+7 #読み込んだデータから人口を取得し、千万で割る
head(pop, 15)
 [1] 0.5506419 0.1373339 0.1330147 0.2348165 0.1085997 0.1168924 0.2029064
 [8] 0.2969770 0.2007683 0.2008068 0.7194556 0.6216289 1.3159388 0.9048331
[15] 0.2374450
symbols(p, circles = sqrt(pop / (2 * pi)), 
        inches = FALSE,
        fg = col[1], 
        bg = col[2], 
        add = TRUE
        ) #各都道府県に対応する円を描画。円の大きさは人口に基づき、色は枠col[1]、背景col[2]で設定。

idx <- c(1e+6, 5e+6, 1e+7)
pos <- legend("bottomright", 
              legend = format(idx, scientific = 10, big.mark = ","),
              title = "Population (2010)", 
              bg = "white", 
              x.intersp = 2, 
              y.intersp = 1.5
              ) #凡例をプロットの右下に追加

symbols(pos$text$x- 1, 
        pos$text$y, 
        circles = sqrt(idx / 1e+7 / (2 * pi)),
        inches = FALSE, 
        fg = col[1], 
        bg = col[2], 
        add = TRUE
        ) #凡例の近くに円を描画

par(op) #元のプロットパラメータに戻す

カルトグラムの作成

JapanPrefCartogram関数は、日本の都道府県で区分された単純なサークルカルトグラムを描画します。円の大きさは平成27年国勢調査より取得した各都道府県の2015年の人口を表しており、現在のところ大きさは固定です。自由に変更できるのは、色とその他のグラフィック・パラメータのみです。なお、色の順序は都道府県のJISコード順に合わせる必要があります。

引数を設定しない場合は、シンプルなサークルカルトグラムが出力されます。

JapanPrefCartogram()

引数を設定することで色やラベルを設定できます。ここでは、都道府県を虹色のグラデーションとなるように色分けし、都道府県名がラベリングされるようにしています。

op <- palette(rainbow(47, end = 0.9)) #47色の虹の色を生成し、パレットとして設定
xy <- JapanPrefCartogram(col = 1:47, fg = gray(0.6)) #カルトグラムの作成
lb <- as.character(dat$name) #先ほど読み込んだDBFファイルから都道府県名を取得
text(xy, lb, cex = 0.6)

palette(op) #元のカラーパレットに戻す