Pandasを用いた箱ひげ図の作成|Python

3 アクセス

この記事は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引数で変更することができる

おわりに

箱ひげ図はデータの比較はしやすいが、詳細な分布については読み取ることができない
そこで、次回はヒストグラムを作成したい

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です