1947年〜2018年の出生数と婚姻・離婚件数の推移をプロット

我が国日本は、人類史上未曾有の超高齢化・超少子化・超未婚化に見舞われていますが、今回は、1947年〜2018年の71年間の日本の出生数、婚姻件数、離婚件数の推移をPyhotnを使ってグラフ化してみたいと思います。

スポンサーリンク

人口動態データの準備

このサイトからデータをダウンロードします。

from pandas import *

df = read_csv('jappopu.csv',usecols=['Unnamed: 0','出生数','婚姻件数','離婚件数'])
df.head(2)
Unnamed: 0 出生数 婚姻件数 離婚件数
0 1947 2 678 792 934 170 79 551
1 1948 2 681 624 953 999 79 032
df.rename(columns={'Unnamed: 0':'年'},inplace=True)
df = df.replace(r'[,\"\']','', regex=True).replace(r'\s*([^\s]+)\s*', r'\1', regex=True)
df = df.convert_objects(convert_numeric=True)
/root/.pyenv/versions/miniconda3-latest/envs/py368/lib/python3.6/site-packages/ipykernel_launcher.py:1: FutureWarning: convert_objects is deprecated.  To re-infer data dtypes for object columns, use DataFrame.infer_objects()
For all other conversions use the data-type specific converters pd.to_datetime, pd.to_timedelta and pd.to_numeric.
  """Entry point for launching an IPython kernel.
スポンサーリンク

出生数・婚姻件数・離婚件数をプロット

from matplotlib.pyplot import *
from matplotlib.font_manager import FontProperties
from matplotlib import rcParams
style.use('ggplot')

fp = FontProperties(fname='/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf', size=54)
rcParams['font.family'] = fp.get_name()
rcParams["font.size"] = "20"
fig, ax = subplots(figsize=(25,12))

df[['年','出生数']].set_index('年').plot(ax=ax,kind='bar',color='g',alpha=0.5)
df[['年','婚姻件数']].set_index('年').plot(ax=ax,kind='bar',color='r',alpha=0.5)
df[['年','離婚件数']].set_index('年').plot(ax=ax,kind='bar',color='b',alpha=0.5)
yticks(np.arange(0,2.8e6,1e6/4),
   ['{}万'.format(int(x/1e4)) if x > 0 else 0 for x in np.arange(0,2.8e6,1e6/4)])
ax.set_xticklabels(df['年'], rotation=90);

令和効果(改元効果)により、今年は出生数と婚姻件数が激増するだろうと一部の楽観論者の間で予想されていたのですが、その期待は物の見事に裏切られてしまっています。何と、令和元年の出生数は余裕で100万人を超えるどころか、87万人程度まで落ち込むだろうという非常に恐ろしい事態に陥っています。ただ、こと出生数に関して言えば、1989年にも期待されていた平成効果が全く存在しなかったことを考えると、その可能性は限りなく低いだろうとも一部で囁かれていたので、この結果は特に驚くようなことでもないのかもしれません。今回はかなり前から改元(元号変更)が分かっていたから前回とは違うと言った意見も聞かれたのですが、去年の夏頃から始まっているアベノ大不況下で子供を持とうという奇特な人間はそうそういないだろうと予想していた悲観論者の完全勝利になっています。楽観論者達の予想は、取らぬたぬきの皮算用だったようです。

style.use('seaborn-deep')
fig, ax = subplots(figsize=(25,12))

df[['年','出生数']].set_index('年').plot(ax=ax,color='g',alpha=0.5)
df[['年','婚姻件数']].set_index('年').plot(ax=ax,color='r',alpha=0.5)
df[['年','離婚件数']].set_index('年').plot(ax=ax,color='b',alpha=0.5)
ax.lines[0].set_linewidth(3)
ax.lines[1].set_linewidth(3)
ax.lines[2].set_linewidth(3)
legend(loc=1, prop={'size': 26})
yticks(np.arange(0,2.8e6,1e6/4),
   ['{}万'.format(int(x/1e4)) if x > 0 else 0 for x in np.arange(0,2.8e6,1e6/4)])
ax.annotate('丙午', xy=(1966,1360974),  xycoords='data',
             xytext=(-20, -20),textcoords='offset points',
             size=30, ha='right', va="center",
             bbox=dict(boxstyle="round", alpha=0.1),
             arrowprops=dict(arrowstyle="wedge,tail_width=0.5", alpha=0.1));

丙午には子供を産むな!という迷信が日本には古の時代からあるらしく、そういった迷信を信じる人達が子供を作らなかったので、1966年は前年よりも出生数が3割減となってしまっています。次の丙午である7年後の2026年の出生数は、2025年に始まることが確実視されている令和大恐慌の影響で30万人を余裕で割り込んでいるはずです。下手すると20万人にすら達しない可能性さえあります。以前この記事”40年周期と77年周期によると日本は2029年に確実に滅ぶ“と書きましたが、今後10年間の日本は坂道を転げ落ちるように奈落の底へと向かうことになります。

1950年〜2017年の日本人女性の年代別出産数推移をグラフ化
1908年〜2017年の平均婚姻年齢(初婚・全婚姻)をグラフ化
若年・中年・高年・超高年層死亡数推移(1950年〜2017年)
日本の交通事故死亡者数の推移を性別・年齢別に棒グラフ化する
Python:日本人の年齢別死亡者数の推移をプロットして考察する
Python:年齢別交通事故死亡数を死亡割合に変換する
Python:在留外国人比率の高い市町村を条件別に抽出する
Python:日本人の年代別・性別死亡数を視覚化して考察する
Python:結婚適齢期女性が最も余っている都市を探し出す
Python:国籍別に在留外国人数の多い市町村を抽出する
Python:1950年〜2017年の年齢別自殺数推移を棒グラフ化する

スポンサーリンク
スポンサーリンク