Matplotlibのhexbin()メソッドで六角形ビンのヒストグラムを描画する方法
Matplotlibでは、hexbin()メソッドを使うことで、2次元データを六角形のビン(bin)に区切って可視化する「hexbinヒストグラム」を簡単に描画できます。点が密集している分布を見やすく表現できるため、大量のデータポイントを扱う散布図の代替手段としても非常に便利です。
hexbinヒストグラムを描画する手順
図のサイズを設定し、
figure.autolayoutを使ってサブプロット間・周囲の余白を自動調整します。NumPyを使ってxとyのデータポイントを生成します。
plt.subplots()で図とサブプロットを作成します。hexbin()メソッドにxとyを渡してプロットします。必要に応じて
gridsizeやcmapを指定しましょう。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'でカラーマップを指定しており、ビン内のデータ数が多いほど明るい色で表示されます。
実行結果

実行すると、相関のある2つの変数の分布が六角形ごとの密度として色分けされて表示され、データの集中している領域がひと目でわかるようになります。
-
MatplotlibのヒストグラムでX軸ラベルを各ビンの中央に配置する方法
Matplotlibのヒストグラムプロットでは、デフォルトのままではX軸の目盛りラベルがビン(階級)の境界線上に表示されます。これを各バー(パッチ)の中央に配置するには、各パッチの中間点を計算し、xticks()メソッドを使って目盛りラベルを適切な位置に設定します。手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。NumPyを使って、標準正規分布に従うランダムなサンプルデータxを作成します。ビン(階級)の数を格納する変数を初期化します。hist()メソッドを使用してヒストグラムを描画します。戻り値として得られるpatchesから、各バーの中央位置(_x0と_x1
-
Python Matplotlibで3Dグラフをプロットする方法を解説
PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使