ヒストグラム
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 27/60。
12 件のヘルプデスクへの通話時間(分)。ヒストグラムは、このような数値の分布を示します。値の範囲を同じ幅の階級に分け、それぞれに含まれる値の個数を数えます。
calls = [2, 3, 3, 4, 5, 5, 6, 6, 6, 7, 9, 14]
fig, ax = plt.subplots()
counts, edges, bars = ax.hist(calls, bins=4)
print(counts)
print(edges)
plt.show()ほとんどの呼び出しは2〜8分かかります。ax.histはカウントした内容も返すので、次のように表示されます。
[4. 6. 1. 1.]
[ 2. 5. 8. 11. 14.]4個のビンには5つのedgesが必要です。境界上にある値は右側のビンに入りますが、最大値は最後のビンにとどまります。
チャレンジ
中級果樹園では120個のりんごの重さをweights(グラム単位)として測定しました。プログラムはビンの数を読み込み、最初のコードでタイトルとラベルを設定したグラフを用意して表示します。
weightsのヒストグラムを指定した数のビンで描画し、ax.histが返す値を保持します。- 以下のように、最も度数の多いビンの範囲を小数第1位まで丸めて、その件数とともに出力します。
別の果樹園でビンを6個にすると、プログラムは次の行を出力し、その後Coddyがグラフを説明します。
Fullest bin: 153.6 to 167.8 g, 38 applesグラフは次のようになります。
自分で試してみよう
import numpy as np
import matplotlib.pyplot as plt
bins = int(input())
# 以下の行は変更しないでください
rng = np.random.default_rng(11)
weights = rng.normal(150, 20, size=120)
fig, ax = plt.subplots()
ax.set_title("Apple Weights")
ax.set_xlabel("Weight (g)")
ax.set_ylabel("Apples")
# 以下にコードを書いてください
# 以下の行は変更しないでください
plt.show()
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ