Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibのヒストグラム関数でビン(階級)の情報を取得する方法

Matplotlibでヒストグラムを作成する際、ビン(階級)ごとの詳細な情報を取得したいケースはよくあります。NumPyの histogram() 関数を組み合わせることで、各ビンの度数や境界値を簡単に取り出し、自由に可視化することができます。

ビンの情報を取得する手順

以下の手順に従うことで、Matplotlibのヒストグラムにおけるビンの情報を取得できます。

  1. データとビンの境界となる数値のリストを作成します。

  2. histogram() メソッドを使って、データセットのヒストグラムを計算します。

  3. 計算結果から、度数(hist)とビンの境界値(edges)を取得します。

  4. ヒストグラム内の頻度(割合)を求めます。

  5. 手順1のビンデータと手順4の頻度データを使って棒グラフを作成します。

  6. show() メソッドを呼び出して、図を表示します。

コード例

import numpy as np
from matplotlib import pyplot as plt
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True
a = [-0.125, .15, 8.75, 72.5, -44.245, 88.45]
bins = np.arange(-180, 181, 20)
hist, edges = np.histogram(a, bins)
freq = hist/float(hist.sum())
plt.bar(bins[:-1], freq, width=20, align="edge", ec="k", color='red')
plt.show()

コードの解説

  • np.arange(-180, 181, 20) により、-180から180まで20刻みのビン境界を生成しています。

  • np.histogram(a, bins) の戻り値として、各ビンに含まれるデータの個数(hist)とビンの境界値配列(edges)が返されます。これにより、ビンに関する詳細な情報を取得できます。

  • freq = hist/float(hist.sum()) で、度数を全体に対する割合(頻度)に変換しています。

  • plt.bar() を使って、ビンの左端に合わせてバーを揃えるため align="edge" を指定し、枠線を黒(ec="k")、塗りつぶし色を赤に設定しています。

実行結果

このコードを実行すると、赤色の棒グラフとしてヒストグラムが表示され、各ビン(20幅の区間)ごとのデータの出現頻度がひと目でわかります。np.histogram() を使うことで、単にグラフを描くだけでなく、ビンの境界値や度数といった数値情報もプログラム内で活用できるのが大きなメリットです。

  1. Matplotlibで複数の凡例エントリを持つヒストグラムを描画する方法

    Matplotlibでは、ヒストグラムの各ビン(バー)に異なる色を割り当て、その色に対応した複数の凡例エントリを表示することができます。この記事では、hist()メソッドとRectangleパッチを組み合わせて、色分けされたヒストグラムに凡例を追加する手順を解説します。実装の手順図のサイズを設定し、サブプロット間および周囲のパディングを調整します。numpyを使ってランダムデータを生成します。hist()メソッドでヒストグラムを描画します。各パッチの塗りつぶしに使う色のリストを作成します。パッチを反復処理し、それぞれの面の色を設定します。凡例を配置するためのハンドル(Rectangleオブジェ

  2. Matplotlibで離散値のヒストグラムを描く方法

    Matplotlibを使って離散値(とびとびの値)のデータからヒストグラムを作成するには、hist()メソッドを利用します。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。 手順 figure.figsizeで図のサイズを設定し、figure.autolayoutを有効にして、サブプロット間や周囲の余白を自動調整します。 ヒストグラムとして可視化したい離散値のリストを作成します。 hist()メソッドを使ってデータをプロットします。このとき、bins引数にデータの長さを指定し、edgecolor=blackで各バーの枠線を黒色にすると、離散的な値が見やすくなります。 sh