1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

記事投稿キャンペーン 「AI、機械学習」

Matplotlibでヒストグラムを重ねて表示する。

Last updated at Posted at 2023-11-21

問題の背景

二つの母集団のヒストグラムを比較する際に二つのグラフを交互に目視で比較するよりも、いっそ重ねてしまえば見やすいんじゃねと思い試してみました。

流れ

手順としては、
①度数分布表を作成
②ヒストグラムを出力
という流れです。

①で度数分布表を作成する理由は、比較する二つの母集団の大きさが異なる場合重ねて表示して単純に比較する事ができないからです。

例えば男性が1000人、女性が100人というデータでヒストグラムをそれぞれ重ねてしまうと以下のグラフのように女性のヒストグラムが小さくなってしまい重ねて表示する意義が失われてしまうので注意が必要。

image.png

コード

import matplotlib.pyplot as plt


x = [x for x in range(12,47,2)]
y_male = [0,0,0,2,4,12,18,29,16,13,4,2,0,0,0,0,0,0]
y_female = [0,0,0,0,0,0,1,5,9,16,32,19,12,4,2,0,0,0]
p_male = plt.bar(x, y_male, width=2,  color="blue", edgecolor="black", alpha=0.3)
p_female = plt.bar(x, y_female, width=2,  color="red", edgecolor="black", alpha=0.3)


plt.title('A値のヒストグラム',fontsize=18)
plt.xlabel("A値", fontsize=18)
plt.ylabel("相対度数(%)", fontsize=18)

plt.legend((p_male[0], p_female[0]), ("男性", "女性"), loc='upper right', ncol=2, fontsize=8)

plt.grid(axis="y")
plt.show()

このコードを実行した結果が以下のグラフ

image.png

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?