日本ほど歩行者軽視の先進国は他に存在しないというようなことを以前書きましたが、日本の交通事故死者数はどうなっているのか気になったので、1950年〜2017年の67年間の交通事故死亡数の推移をグラフ化してみることにしました。意外だったのは、交通事故死亡者数がかなり劇的に減少しているということでした。自分が子供の頃は2万人近く死んでいただけに、昨今の死亡者数の大幅な減少はかなりの驚きに値します。
from pandas import *
df = read_csv('caraccident.csv',encoding='cp932')
df.head(2)
df.drop(['表章項目','死因年次推移分類','性別','/時間軸(年次)'],axis=1,inplace=True)
df.head(2)
df = df.convert_objects(convert_numeric=True)
0〜100歳以上の年次別自殺者数をプロット¶
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,20))
df[:23][1:].set_index('年齢(5歳階級)').T.plot(kind='barh',ax=ax,stacked=True)
ax.legend(loc='lower right', fancybox=True, framealpha=0.5);
xticks(np.arange(0,2.6e4,1e4/5),
['{}万'.format(float(x/1e4)) if x > 0 else 0 for x in np.arange(0,2.6e4,1e4/5)]);
2017年の交通事故死亡者数は、警察庁発表だと3694人となっていますが、これは24時間以内死亡数で、30日以内死亡数は4431人となっています。厚労省のデータは1年以内死亡数ということらしいのですが、このデータには水上事故や航空事故も入っています。路上交通事故死亡数については4452人となっています。
df1 = df[:5][1:].groupby(np.arange(len(df[:5][1:]))//4).sum()
df1.index = df[:5][1:].loc[1::4, '年齢(5歳階級)']
df2 = df[:9][5:].groupby(np.arange(len(df[:9][5:]))//4).sum()
df2.index = df[:9][5:].loc[1::4, '年齢(5歳階級)']
df3 = df[:13][9:].groupby(np.arange(len(df[:13][9:]))//4).sum()
df3.index = df[:13][9:].loc[1::4, '年齢(5歳階級)']
df4 = df[:22][13:].groupby(np.arange(len(df[:22][13:]))//9).sum()
df4.index = df[:22][13:].loc[1::9, '年齢(5歳階級)']
df5 = concat([df1,df2,df3,df4], axis=0)
df5.rename(index={'0~4歳':'0〜19歳','20~24歳':'20〜39歳','40~44歳':'40〜59歳','60~64歳':'60歳〜'},inplace=True)
df5.reset_index(inplace=True)
style.use('fivethirtyeight')
fp = FontProperties(fname='/usr/share/fonts/opentype/ipaexfont-gothic/ipaexg.ttf', size=54)
rcParams['font.family'] = fp.get_name()
rcParams["font.size"] = "18"
fig, ax = subplots(figsize=(18,10))
df5.set_index('年齢(5歳階級)').T.plot(kind='barh',ax=ax,stacked=True)
ax.legend(loc='lower right',fancybox=True,framealpha=0.5,prop={'size': 26})
xticks(np.arange(0,2.6e4,1e4/5),
['{}万'.format(float(x/1e4)) if x > 0 else 0 for x in np.arange(0,2.6e4,1e4/5)]);
60年代、70年代は、交通戦争と言われるぐらい交通事故死者数が多かったことが見て取れます。あの時代はモータリゼーションが始まったばかりの頃だったので車はポンコツ、道路事情も劣悪な上、運転マナーも板に付かない時代であったことを考えれば、この数字は致し方ない、もしくは至極当然と言わざるを得ないでしょう。今の未成年者は、交通事故で非業の死を遂げる確率がかなり減ったので幸せだと言えます。昔の未成年者は、交通事故死の恐怖だけではなく、病死の確率も今とは比べ物にならないくらい高かったので、非常に生きるのが難しかった時代とも言えます。気になるのは、交通事故死亡数の半数が、歩行者と自転車運転者の二大交通弱者であるということです。弱者に残酷な日本の実態を象徴しています。交通事故死亡者数が半世紀で大幅に減少しているのは、少子化で運転の荒い若者が激減すると同時に、失われた24年で貧困化し車にすら乗れなくなったことと、さらに、日本国民の多くが外出すると金がかかるので外出を控えるようになり、死亡事故の15%を占めるバイク乗りが大幅に減少したためです。言い換えれば、長期にわたる経済の低迷が、交通死亡事故を大幅に減少させたということになります。何とも皮肉な話ではないでしょうか。
2017年の交通死亡数男女比較¶
df6 = df[['年齢(5歳階級)','2017年']][:44][24:]
df6.rename(columns={'2017年':'Male'}, inplace=True)
df6
df7 = df[['年齢(5歳階級)','2017年']][:67][47:]
df7.rename(columns={'2017年':'Female'}, inplace=True)
df7
df8 = merge(df6,df7,how='inner',on='年齢(5歳階級)')
df8['Total'] = df8['Male']+df8['Female']
df8['Female_Pct'] = df8['Female'] / df8['Total']
df8['Male_Pct'] = df8['Male'] / df8['Total']
rcParams['figure.figsize'] = 20,12
rcParams["font.size"] = "16"
for (i, row) in df8.iterrows():
bar([row['年齢(5歳階級)']], [row['Male_Pct']],
color=['#008AB8'], width=0.9, align='center', edgecolor='none')
bar([row['年齢(5歳階級)']], [row['Female_Pct']], bottom=[row['Male_Pct']],
color=['#CC6699'], width=0.9, align='center', edgecolor='none')
xlim(-0.6, 19.6)
ylim(0, 1)
xticks(range(0, 20), df8['年齢(5歳階級)'], fontsize=13.5)
grid(False)
yticks(np.arange(0, 1.01, 0.25),
['{}%'.format(int(x * 100)) for x in np.arange(0, 1.01, 0.25)])
xlabel('Age group')
ylabel('Percentage of age group')
plot([-0.425, 20.425], [0.5, 0.5], lw=2, color='black')
plot([-0.425, 20.425], [0.25, 0.25], lw=2, color='black')
plot([-0.425, 20.425], [0.75, 0.75], lw=2, color='black');
2017年の交通事故死亡数の男女比を見ると、あまりにも男が死に過ぎていることに気付かされるはずです。男性死亡数が女性死亡数より少ないのは90歳以上のみとなっていますが、これはただ単に、90歳以上人口は女性の方が男性より圧倒的に多いためです。交通死亡事故の64%以上は、歩行者、自転車と二輪車の乗員が犠牲になっているという事実を考えると、交通弱者は事故に遭わないように細心の注意が必要なことが分かります。暴走車が突っ込んでくるのは防ぎようがありませんが、無理な横断や無茶な自転車運転(例えば雨の日の自転車運転)を慎むだけで、歩行者と自転車運転者の事故死の危険性は減少するはずです。結局は、自分の身は自分が守るしかないの一言に尽きます。子供がいる親なら、子供を守るのは親の責任であることは言うまでもないでしょう。注意一秒怪我一生、飛び出すな車は急に止まれないと言われるように、車に当たったら死ぬ可能性が高いということと、車の運転者はあなたを轢き殺しても大した罪にはならないこと、つまり、交通事故死は完全に犬死でしかないということを肝に銘じておくべきです。
1947年〜2018年の出生数と婚姻・離婚件数の推移をプロット
1950年〜2017年の日本人女性の年代別出産数推移をグラフ化
1908年〜2017年の平均婚姻年齢(初婚・全婚姻)をグラフ化
若年・中年・高年・超高年層死亡数推移(1950年〜2017年)
日本の右肩下がりの出生数と右肩上がりの死亡者数をグラフ化する
Python:日本人の年齢別死亡者数の推移をプロットして考察する
Python:年齢別交通事故死亡数を死亡割合に変換する
Python:在留外国人比率の高い市町村を条件別に抽出する
Python:日本人の年代別・性別死亡数を視覚化して考察する
Python:結婚適齢期女性が最も余っている都市を探し出す
Python:国籍別に在留外国人数の多い市町村を抽出する
Python:1950年〜2017年の年齢別自殺数推移を棒グラフ化する