ヒストグラムしたい(matplotlib.axes.Axes.hist

 1import matplotlib.pyplot as plt
 2import numpy as np
 3
 4# データを準備する
 5data = np.random.normal(loc=0, scale=1, size=1000)  # 平均0、標準偏差1の正規分布から1000点を生成
 6
 7# キャンバスを作成
 8fig, ax = plt.subplots()
 9
10# ヒストグラムを作成
11ax.hist(
12    data,       # データ
13    bins=30,    # ビンの数
14    range=(-5, 5),  # 範囲
15    color='blue',   # 色
16    alpha=0.7,      # 透明度
17)
18
19# グラフのタイトルと軸ラベルを設定
20ax.set_title("ヒストグラム")
21ax.set_xlabel("値")
22ax.set_ylabel("頻度")
23
24plt.show()

Axes.histでヒストグラムを作成できます。 データを配列で指定し、オプションでビンの数や範囲を変更できます。

重みをつけたい(weights

1ax.hist(
2    data,
3    bins=30,
4    range=(-5, 5),
5    color='blue',
6    alpha=0.7,
7    weights=np.ones_like(data) / len(data)  # 重みを設定
8)

weightsオプションで、各データポイントに重みをつけることができます。 たとえば、np.ones_like(data) / len(data)のように設定すると、ヒストグラムが正規化され、面積が1になるようになります。

ログ表示したい(log

1ax.hist(
2    data,
3    bins=30,
4    range=(-5, 5),
5    color='blue',
6    alpha=0.7,
7    log=True,  # Y軸をログ表示
8)

log=Trueオプションで、Y軸をログ表示にできます。 頻度の値が大きく異なる場合に、ログ表示にすることで全体の傾向を見やすくできます。

正規化したい(density

1ax.hist(
2    data,
3    bins=30,
4    range=(-5, 5),
5    color='blue',
6    alpha=0.7,
7    density=True,  # 正規化
8)

density=Trueオプションで、ヒストグラムを正規化できます。 正規化すると、ヒストグラムの面積が1になるように調整されます。

累積したい(cumulative

1ax.hist(
2    data,
3    bins=30,
4    range=(-5, 5),
5    color='blue',
6    alpha=0.7,
7    cumulative=True,  # 累積
8)

cumulative=Trueオプションで、ヒストグラムを累積できます。 累積ヒストグラムは、各ビンの値がそれまでのビンの値の合計になるように調整されます。

重ね書きしたい(histtype

1ax.hist(
2    [data1, data2],  # 複数のデータセット
3    bins=30,
4    range=(-5, 5),
5    color=['blue', 'orange'],
6    alpha=0.7,
7    histtype='step',  # 重ね書き
8)

dataを複数のデータセットにすることで同時描画できます。 histtype='step'オプションで境界線のみを描画することで、視覚的に分かりやすくできます。

alphaオプションで透明度を調整することで、複数のヒストグラムを重ねて表示することもできます。

積み上げたい(stacked

1ax.hist(
2    [data1, data2],  # 複数のデータセット
3    bins=30,
4    range=(-5, 5),
5    color=['blue', 'orange'],
6    alpha=0.7,
7    stacked=True,  # 積み上げ
8)

stacked=Trueオプションで、複数のヒストグラムを積み上げて表示できます。 複数のデータセットをリストで指定し、色や透明度を調整することで、各データセットの寄与を視覚的にわかりすく表示できます。