この記事はPandasで折れ線グラフを描画する|Pythonの続き
今回は箱ひげ図を作成する
この記事は、以下の著作物を改変して利用しています。
あいちの人口(2024年9月1日現在) 愛知県人口動向調査結果 月報、愛知県、クリエイティブ・コモンズ・ライセンス
表示2.1日本(http://creativecommons.org/licenses/by/2.1/jp/)
作成する箱ひげ図
使用しているデータでは市区町村の所属するブロックが書かれた’ブロック’列が存在する
そこで、ブロック別にグループ分けして、縦軸に人口を取る箱ひげ図を今回は作成する
これまでのグラフ同様、国籍や性別で区別されたデータは使わない
ソースコード
import pandas as pd
import matplotlib.pyplot as plt
import japanize_matplotlib
# データの読み込みと抽出
df = pd.read_csv('population.csv', encoding='shift_jis')
df = df[(df["国籍区分"]=="a)日外") & (df["性別"]=="a)男女")]
# 箱ひげ図の描画
df[2:].plot.box(by='ブロック', column='20240901', figsize=(8,4))
plt.ylabel('人口')
plt.show()
箱ひげ図を描画するにはpandas.Dataframeのplot.box()メソッドを用いる
column="人口"
:箱ひげ図にプロットする値を指定するby="ブロック"
:箱ひげ図をグループ分けする列を指定する- fig:ウインドウのサイズ
また、今回のデータは1行目に愛知県全体、2行目に名古屋市全体の人口データが入っている
それらを取り除くため、スライスを用いている(df[2:]の部分)
実行結果
名古屋ブロックは区、その他のブロックでは市町村のデータになっている
また、ひげの長さが四分位範囲の1.5倍を超えるようなデータは外れ値とみなされている
ひげの長さを変更するには、boxplotメソッドのwhis引数で変更することができる
おわりに
箱ひげ図はデータの比較はしやすいが、詳細な分布については読み取ることができない
そこで、次回はヒストグラムを作成したい
コメントを残す