ロジカ式ロゴ

Python
データ分析

ページ一覧に戻る
ヒストグラム分析
渡辺先生

2クラスの得点分布を公平に比較します。

まず自分で予想してから、コードを動かしてみよう!

そうた

結果だけでなく、そう考えた理由も説明してみます。

ひな

QUESTION まず考えよう

平均点が近い2クラスでも、得点の集まり方は同じでしょうか?

PREDICT 実行前の予想

A組とB組のうち、ばらつきが大きそうな方を予想してください。

TRY 実行して確かめよう

TRY
import matplotlib.pyplot as plt class_a = [58, 62, 65, 67, 68, 70, 71, 72, 74, 76, 78, 80] class_b = [42, 48, 55, 60, 66, 70, 73, 78, 84, 88, 93, 98] bins = range(40, 101, 10) plt.hist(class_a, bins=bins, alpha=0.6, label='A組', edgecolor='black') plt.hist(class_b, bins=bins, alpha=0.6, label='B組', edgecolor='black') plt.xlabel('得点') plt.ylabel('人数') plt.legend() plt.show()
渡辺先生

グラフや数値のどこが予想と同じで、どこが違ったかを見つけましょう。

CHECK 結果を読み取ろう

山の位置と広がりを比べ、どちらが安定しているか答えてください。

📖 考え方を確認する

A組は中央付近に集まり、B組は低得点から高得点まで広がっています。そのためA組の方が得点は安定しています。

CHALLENGE 自分で直してみよう

2つのヒストグラムを上下に分け、同じ横軸で表示してください。

CHALLENGE
import matplotlib.pyplot as plt class_a = [58, 62, 65, 67, 68, 70, 71, 72, 74, 76, 78, 80] class_b = [42, 48, 55, 60, 66, 70, 73, 78, 84, 88, 93, 98] bins = range(40, 101, 10) # plt.subplotsを使って上下に表示しよう

📖 解答例と解説

import matplotlib.pyplot as plt

class_a = [58, 62, 65, 67, 68, 70, 71, 72, 74, 76, 78, 80]
class_b = [42, 48, 55, 60, 66, 70, 73, 78, 84, 88, 93, 98]
bins = range(40, 101, 10)

fig, axes = plt.subplots(2, 1, figsize=(7, 6), sharex=True)
axes[0].hist(class_a, bins=bins, edgecolor='black')
axes[0].set_title('A組')
axes[1].hist(class_b, bins=bins, edgecolor='black', color='orange')
axes[1].set_title('B組')
axes[1].set_xlabel('得点')
plt.tight_layout()
plt.show()

同じ階級と横軸を使うことで、形を公平に比較できます。

POINT
  •  比較するときは階級をそろえる
  •  中心だけでなく広がりも見る
  •  重ねる方法と分ける方法がある

NEXT 次の学びへ

渡辺先生

次は中央値とばらつきを箱ひげ図で簡潔に比べます。

振り返り:今回使った命令、結果から分かったこと、この方法を使える場面を、それぞれ1文で書きましょう。