Matplotlib でデータリストのヒストグラムをプロットする方法

Suraj Joshi 2021年2月9日
Matplotlib でデータリストのヒストグラムをプロットする方法

データのリストからヒストグラムを描画するには 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()

出力:

Matplotlib のヒストグラム(デフォルトのビン付き

ここでは、リスト 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()

出力:

Matplotlib でヒストグラムのビン数を設定する

この処理では、リストの値の全範囲を均等に分割した結果として、20 個のビンから作られたヒストグラムを表示します。

デフォルトでは、density パラメータの値は False に設定されています。リスト内の各ビンの確率密度をプロットしたい場合は、densityTrue に設定する必要があります。densityTrue の場合、ヒストグラムの下の領域は 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()

出力:

Matplotlib での確率プロット付きヒストグラム

パラメータ 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()

出力:

Matplotlib での赤いヒストグラムのプロット

この方法では、赤色のヒストグラムを生成します。

著者: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

関連記事 - Matplotlib Visualizations