【Python】乱数で正規分布データを生成してヒストグラムを描画してみた
Pythonでデータの分布を視覚化する際、ヒストグラムは非常に便利です。今回は、NumPyを使って正規分布に基づいたデータを生成し、それをMatplotlibでヒストグラムとして描画する方法を解説します。さらに横方向のヒストグラム例や、ヒストグラムから度数データを取得する方法もご紹介します。
ランダムデータの生成とヒストグラム描画
import numpy as np import matplotlib.pyplot as plt # 平均100、標準偏差20の正規分布に基づくランダムデータを生成 # ave: 平均値, stdev: 標準偏差, サンプル数は1000 ave = 100 stdev = 20 x = np.random.normal(ave, stdev, 1000) # ヒストグラムを描画 # bins=50 は棒の数を50に指定 fig, ax = plt.subplots() # 図と軸を生成 ax.hist(x, bins=50, edgecolor='black') # ヒストグラムをプロットし、棒に黒い輪郭線を追加 # ヒストグラムを表示 plt.show()
棒グラフにラインを入れる
ヒストグラムの棒に黒いラインを追加するには、ax.histにedgecolor=’black’を指定すれば実現できます。以下のようにコードを修正してください。
ax.hist(x, bins=50, edgecolor='black')
横方向のヒストグラム
縦方向だけでなく、横方向のヒストグラムを描くこともできます。以下のコードのように修正してください。
ax.hist(x, bins=25, orientation='horizontal')
ヒストグラムから度数データを取得する方法
ヒストグラムの度数データは次のコードで取得可能です。
n, bins, patches = ax.hist(x, bins=50) # 各ビンごとの範囲とデータ数を表示 for i, num in enumerate(n): print('{:.2f} - {:.2f} {}'.format(bins[i], bins[i + 1], num)) # 出力例(間を省略) # 49.21 - 51.41 1.0 # 51.41 - 53.60 2.0 # 53.60 - 55.80 5.0 # ... # 152.35 - 154.54 1.0 # 154.54 - 156.74 1.0 # 156.74 - 158.93 1.0
スポンサーリンク