統計解析プログラム言語 R でコロプレスマップ(階級区分図、区画別段彩図とも呼ばれる)を描画してみました。
例として、日本の都道府県別人口密度のデータを使用して地図を塗り分けてみました。
(R について精通している訳でもありません。乱文ご容赦下さい)
0. 前提条件
- R 3.1.1 での作業を想定。
- 地図情報は「国土地理院・地球地図日本」を使用。
(参照「QGIS(Quantum GIS) - 国土地理院・地球地図日本を表示!」) - データは「総務省統計局・平成22年国勢調査」の都道府県別人口密度の部分を使用。
1. CSV データの準備
「政府統計の総合窓口 GL01010101(http://www.e-stat.go.jp/SG1/estat/eStatTopPortal.do “”)」のサイトの中から「主要な統計から探す」-「国勢調査」とたどるなどして「平成22年国勢調査」のデータ(表計算ファイル)を取得し、表計算ソフト等で「都道府県名」と「人口密度」のデータのみを CSV 形式にしておく。
実際には以下のような内容(ファイル名: “population_density_pref.csv")で、カラム名は "PREF_NAME”, “VALUE” としている。(都道府県名でマッチングすることを考慮している)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
2. R スクリプト作成
以下のように R スクリプトを作成する。
詳細な説明はしないが、注意する点は以下のとおり。
- Shapefile の情報と CSV の情報を「都道府県名」でマッチングする。
- classInt ライブラリを使用して分類する。
- 分類する数は使用するカラーバレット以下にする。
- Shapefile と分類データを結合する。
- 結合したデータは「データフレーム形式」に変換する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
|
3. R スクリプト実行
コマンドラインから実行する場合は以下のように実行する。
(データフレーム形式に変換するのに多少時間がかかるが、それでも非力な環境でも数分程度)
1
|
|
--vanilla
は、R がこれまでに保存していたオブジェクトを「読み込まない」(プレーンな)状態で R を実行するオプション。--slave
は、R の出力(処理内容)を標準出力(ディスプレイ)に表示しないオプション。
ちなみに、 R を起動し実行するするなら以下のようになるでしょうか。
1
|
|
4. 地図確認
成功すると “population_density_pref.png” という画像ファイルが作成されるので表示して確認してみる。
以下の画像は、上記のスクリプトを若干編集して各種分類方法を試してみた結果の画像。
【等量分類: quantil】
【等間隔分類: equal】
【標準偏差分類: sd】
【自然階級分類: fisher】
【視覚的に分かりやすい分類: pretty】
【非階層クラスタリング分類: kmeans】
【階層クラスタリング分類: hclust】
【マニュアル分類: fixed】
今回の作業を応用して色々なコロプレスマップが作成できるようになるでしょう。
以上。