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

Matplotlibのhexbin()メソッドで六角形ビンのヒストグラムを描画する方法

Matplotlibでは、hexbin()メソッドを使うことで、2次元データを六角形のビン(bin)に区切って可視化する「hexbinヒストグラム」を簡単に描画できます。点が密集している分布を見やすく表現できるため、大量のデータポイントを扱う散布図の代替手段としても非常に便利です。

hexbinヒストグラムを描画する手順

  • 図のサイズを設定し、figure.autolayoutを使ってサブプロット間・周囲の余白を自動調整します。

  • NumPyを使ってxとyのデータポイントを生成します。

  • plt.subplots()で図とサブプロットを作成します。

  • hexbin()メソッドにxとyを渡してプロットします。必要に応じてgridsizecmapを指定しましょう。

  • set_title()でプロットにタイトルを設定します。

  • plt.show()を呼び出して図を表示します。

コード例

import numpy as np
from matplotlib import pyplot as plt

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

# 正規乱数からデータを生成(yはxに相関あり)
x = 2 * np.random.randn(5000)
y = x + np.random.randn(5000)

fig, ax = plt.subplots()
_ = ax.hexbin(x[::10], y[::10], gridsize=20, cmap='plasma')

ax.set_title('Hexbin Histogram')

plt.show()

コードのポイント

x[::10]のようにスライスを使うと、5000個のデータから10個おきに抽出した500個のデータだけをプロットできます。gridsize=20はx方向の六角形の数を指定するパラメータで、値を大きくするとより細かいビンになります。また、cmap='plasma'でカラーマップを指定しており、ビン内のデータ数が多いほど明るい色で表示されます。

実行結果

Matplotlibのhexbin()メソッドで六角形ビンのヒストグラムを描画する方法

実行すると、相関のある2つの変数の分布が六角形ごとの密度として色分けされて表示され、データの集中している領域がひと目でわかるようになります。

  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()メソッドを使