「若者の給料」と同様に、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: