平均身長の推移

「若者の給料」と同様に、30年間伸びていない「若者男子の低身長」問題という記事の最初のグラフの横軸が何となく変だ。1930,1936,1950,1956という具合に目盛幅が等間隔でない。描き直してみよう。

まずはデータを探す。文科省学校保健統計調査統計表一覧リンクでe-Statに飛び,年次統計の「年齢別 平均身長の推移 (明治33年度~令和2年度)」にExcelファイルがある(学校保健統計調査 / 年次統計)。明治33年度は1900年度,令和2年度は2020年度であるが,途中で飛びがあるので注意を要する。また,これは目で見るための表で,データとして扱いやすい形になっていない。手直しした height.csv を置いておく。

問題の図を再現してみる:

import matplotlib.pyplot as plt
import pandas as pd

df = pd.read_csv("https://okumuralab.org/~okumura/python/data/height.csv")

plt.figure(figsize=(10, 6))
plt.plot(df['年度'], df[['男15歳', '男16歳', '男17歳']].mean(axis=1), "o-")

あるいは年齢ごとのほうがよいかもしれない:

for k in ["男17歳", "男16歳", "男15歳"]:
    plt.plot(df["年度"], df[k], "o-", label=k)
plt.legend()
平均身長の推移

2020年度の値がちょっとだけ増えているように見えるのは,COVID-19のために調査時期に遅れが出たためらしい。

男子全部をプロットするには:

plt.figure(figsize=(10, 10))
for k in df.columns[13:0:-1]:
    plt.plot(df["年度"], df[k], "o-", label=k)
plt.legend(loc="upper left")

女子全部なら df.columns[:13:-1] にする。


Last modified: