本文へスキップ
BecomeCoder

Pythonデータ分析コース · 第5章 matplotlib ― データを可視化する · レッスン20

ヒストグラム ― hist

ブラウザで完結

導入

ヒストグラムは、データの**分布(かたより)**を見るグラフです。「テストの点は何点あたりに集中しているか」「価格帯ごとの件数」などを把握します。

説明

plt.hist(data, bins=区間数) で、値をいくつかの区間に分け、各区間の個数を棒で表します。

import numpy as np
import matplotlib.pyplot as plt

# 平均70・標準偏差10 の点数を200人分、疑似的に生成
np.random.seed(0)
scores = np.random.normal(70, 10, 200)

plt.hist(scores, bins=15, color="skyblue", edgecolor="white")
plt.title("Score Distribution")
plt.xlabel("score")
plt.ylabel("count")
plt.show()

np.random.normal(70, 10, 200) は「平均70・ばらつき10」の値を200個作る命令です(seed を固定すると毎回同じ結果になります)。山が70あたりを中心にできていれば、多くの人が平均前後に集まっていると読めます。

bins(区間の数)を変えると、山の見え方が変わります。

import numpy as np
import matplotlib.pyplot as plt

np.random.seed(0)
data = np.random.normal(50, 15, 300)

plt.hist(data, bins=5, color="salmon", edgecolor="white")   # 粗い
plt.title("bins = 5")
plt.show()

やってみよう

bins=15bins=5 を切り替えて、分布の見え方の違いを確かめましょう。区間を細かくすると凸凹が、粗くするとおおまかな傾向が見えます。

演習

np.random.normal(0, 1, 500) で作った500個のデータを、bins=20 のヒストグラムにしてください。タイトルは "hist"

ヒント1を見る

data = np.random.normal(0, 1, 500)plt.hist(data, bins=20)plt.title("hist")plt.show()

実際に動かしてみよう

下のエディタにPythonを書いて「実行」を押すと、numpy・pandas・matplotlib が使える本物のPython(Pyodide)で出力とグラフが表示されます。初回だけ読み込みに少し時間がかかります。本文の例をそのまま試したり、書き換えたりしてみましょう(グラフ内の文字は日本語だと表示が崩れるため英字で書きます)。

Python — ライブラリ付きで実行(Pyodide)

numpy / pandas / matplotlib が使える本物のPython(Pyodide)を読み込みます。初回のみ読み込みに少し時間がかかります(以降はブラウザにキャッシュされます)。
スクロールして表示された時点でも自動で読み込まれます。