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

Matplotlibでcollections.Counterを使ってヒストグラム(度数分布図)をプロットする方法

Pythonのcollections.Counterを使ってヒストグラム(度数分布)を可視化したい場合、Matplotlibのbar()メソッドを利用するのが簡単です。collections.Counter()で各要素の出現回数(頻度)を集計し、その要素をX軸、頻度を棒の高さとして棒グラフを描くことで、ヒストグラムと同じ効果が得られます。

実装手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • データポイントのリストを作成します。
  • collections.Counter()を使って、各要素の頻度を格納した辞書 d を取得します。
  • d.keys()(要素)と d.values()(頻度)を指定して、bar()メソッドで棒グラフを作成します。
  • show()メソッドを呼び出して、図を表示します。

コード例

import collections
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

data = [0, 1, 2, 4, 1, 3, 0, 4, 1, 4, 3, 5, 6, 5, 2]

d = collections.Counter(data)

plt.bar(d.keys(), d.values())

plt.show()

実行結果

Matplotlibでcollections.Counterを使ってヒストグラム(度数分布図)をプロットする方法

このコードを実行すると、データ内の各値(0〜6)が出現した回数に応じた高さの棒グラフが表示されます。例えば、値「1」は3回、「4」も3回出現しているため、最も高い棒として描画されます。

補足:連続的な数値データの場合は、plt.hist(data)を使うことでビン(階級)ごとの度数を自動的に集計してヒストグラムを描くこともできます。一方、カテゴリカルなデータや離散的な値の頻度を正確に把握したい場合は、本記事のようにcollections.Counterbar()を組み合わせる方法が有効です。

  1. MatplotlibのヒストグラムでX軸ラベルを各ビンの中央に配置する方法

    Matplotlibのヒストグラムプロットでは、デフォルトのままではX軸の目盛りラベルがビン(階級)の境界線上に表示されます。これを各バー(パッチ)の中央に配置するには、各パッチの中間点を計算し、xticks()メソッドを使って目盛りラベルを適切な位置に設定します。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。NumPyを使って、標準正規分布に従うランダムなサンプルデータxを作成します。ビン(階級)の数を格納する変数を初期化します。hist()メソッドを使用してヒストグラムを描画します。戻り値として得られるpatchesから、各バーの中央位置(_x0と_x1

  2. Python Matplotlibで3Dグラフをプロットする方法を解説

    PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使