Matplotlib でデータリストのヒストグラムをプロットする方法
Suraj Joshi
2021年2月9日
データのリストからヒストグラムを描画するには plt.hist()
メソッドを使用することができます。
Maplotlib の構文 hist()
メソッド
matplotlib.pyplot.hist(x,
bins=None,
range=None,
density=False,
weights=None,
cumulative=False,
bottom=None,
histtype='bar',
align='mid',
orientation='vertical',
rwidth=None,
log=False,
color=None,
label=None,
stacked=False, *,
data=None,
**kwargs)
例:データのリストから Matplotlib を使ってヒストグラムをプロットする
import matplotlib.pyplot as plt
data = [3, 4, 2, 3, 4, 5, 4, 7, 8, 5, 4, 6, 2, 1, 0, 9, 7, 6, 6, 5, 4]
n, bins, patches = plt.hist(data)
plt.xlabel("Values")
plt.ylabel("Frequency")
plt.title("Histogram")
plt.show()
出力:
ここでは、リスト data
の中に値があります。このリストを plt.hist()
コマンドに渡して、値のリストからヒストグラムを生成します。plt.hist()
メソッドは、ビンの頻度、ビンの終点、ヒストグラムの作成に用いたパッチのリストを返します。
この例では、bins
パラメータの値を設定していません。デフォルトでは、bins
の数は 10 なので、スクリプトは 10 個のビンを持つデータのリストからヒストグラムを作成します。
さらに、ヒストグラムを作成する際に bins
コマンドを用いてビン数を制御することもできます。
import matplotlib.pyplot as plt
data = [3, 4, 2, 3, 4, 5, 4, 7, 8, 5, 4, 6, 2, 1, 0, 9, 7, 6, 6, 5, 4]
n, bins, patches = plt.hist(data, bins=20)
plt.xlabel("Values")
plt.ylabel("Frequency")
plt.title("Histogram with 20 bins")
plt.show()
出力:
この処理では、リストの値の全範囲を均等に分割した結果として、20 個のビンから作られたヒストグラムを表示します。
デフォルトでは、density
パラメータの値は False
に設定されています。リスト内の各ビンの確率密度をプロットしたい場合は、density
を True
に設定する必要があります。density
が True
の場合、ヒストグラムの下の領域は 1
に積分されます。
import matplotlib.pyplot as plt
data = [3, 4, 2, 3, 4, 5, 4, 7, 8, 5, 4, 6, 2, 1, 0, 9, 7, 6, 6, 5, 4]
n, bins, patches = plt.hist(data, bins=20, density=True)
plt.xlabel("Weight")
plt.ylabel("Probability")
plt.title("Histogram with Probability Plot")
plt.show()
出力:
パラメータ color
を用いてヒストグラムの色を設定することができます。
import matplotlib.pyplot as plt
data = [3, 4, 2, 3, 4, 5, 4, 7, 8, 5, 4, 6, 2, 1, 0, 9, 7, 6, 6, 5, 4]
n, bins, patches = plt.hist(data, bins=20, density=True, color="red")
plt.xlabel("Weight")
plt.ylabel("Probability")
plt.title("Red Histogram Plot")
plt.show()
出力:
この方法では、赤色のヒストグラムを生成します。
著者: Suraj Joshi
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn