Stata: 都道府県のそれっぽい位置に配置した図

Stataで都道府県のそれっぽい位置に,by オプションを使って都道府県ごとの図を描く方法です.

サンプルコードは下にあります.


参考:


サンプルコード

clear

/* ssc install blindschemes, replace all */
set scheme plotplain


/* * 2- 2 都道府県別人口と人口増減率(エクセル:16KB) */
/* ====================================================================== */
import excel using "https://www.stat.go.jp/data/nihon/zuhyou/n200200200.xlsx", sheet("02-02") cellrange(A10:I56)

drop B-F
rename A prefj_s
rename G pop
rename H mfratio
rename I pop_change_rate




/* 都道府県コード定義 */
/* ====================================================================== */

/* 都道府県JISコード */
label define prefj   ///
  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  "沖縄"
 

/* 描画用コード */
label define pref_plotj  ///
  2   "北海道" ///
  5  "青森"   ///
  14 "岩手"   ///
  24 "宮城"   ///
  4  "秋田"   ///
  13 "山形"   ///
  32 "福島"   ///
  40 "茨城"   ///
  23 "栃木"   ///
  22 "群馬"   ///
  31 "埼玉"   ///
  47 "千葉"   ///
  39 "東京"   ///
  46 "神奈川" ///
  12 "新潟"   ///
  11 "富山"   ///
  3  "石川"   ///
  10 "福井"   ///
  38 "山梨"   ///
  30 "長野"   ///
  21 "岐阜"   ///
  45 "静岡"   ///
  29 "愛知"   ///
  37 "三重"   ///
  20 "滋賀"   ///
  9  "京都"   ///
  19 "大阪"   ///
  8  "兵庫"   ///
  28 "奈良"   ///
  27 "和歌山" ///
  7  "鳥取"   ///
  6  "島根"   ///
  18 "岡山"   ///
  17 "広島"   ///
  16 "山口"   ///
  44 "徳島"   ///
  36 "香川"   ///
  35 "愛媛"   ///
  43 "高知"   ///
  26 "福岡"   ///
  25 "佐賀"   ///
  15 "長崎"   ///
  33 "熊本"   ///
  34 "大分"   ///
  42 "宮崎"   ///
  41 "鹿児島" ///
  1  "沖縄"  

encode prefj_s, gen(pref)       label(prefj)
encode prefj_s, gen(pref_plotj) label(pref_plotj)
order  pref pref_plotj, after(prefj_s)


label variable prefj_s            "都道府県" // 文字列
label variable pref               "都道府県" // JISコード
label variable pref_plotj         "都道府県" // 描画用コード
label variable pop                "平成30年推定人口"
label variable mfratio            "人口性比(女性=100)"
label variable pop_change_rate    "人口増減率"


/* * 描画 */
local holes " holes(2/9 11/15 17/18 21 43/44 55 57 65/67) "
local byopts `" by(pref_plotj, cols(10) `holes' note("") leg(off))  "' 

graph bar (asis) pop, bar(1, col(red)) `byopts' by(, ti("平成30年推定人口"))

gen pop_change_ratep = pop_change_rate if pop_change_rate >= 0 & !missing(pop_change_rate)
gen pop_change_raten = pop_change_rate if pop_change_rate < 0
graph bar (asis) pop_change_ratep pop_change_raten, bar(1, col(blue)) bar(2, col(red)) `byopts' yline(0) by(, ti("人口増加率"))