[matplotlib] 84. hexbin関数を使用して六角形ビンによる2次元ヒストグラムを表示する方法

matplotlib

はじめに

この記事では、matplotlibのhexbin関数を使用して六角形のbinを持つ2次元ヒストグラムを作成する方法を解説します。六角形のbinは四角形に比べてより等方的な表現が可能で、データの分布をより自然に可視化できます。データ分析や密度推定において有用なテクニックです。

コード

解説

モジュールのインポートなど

バージョン

データの生成

np.random.standard_normalを使用して、平均0、標準偏差1の標準正規分布に従うランダムなデータを生成します。

2次元ヒストグラムの表示

左のax0にリニアスケールの図を、右のax1にログスケールの図を表示します。

hexbinプロットは、ax.hexbin()関数でデータx, yを指定し、gridsize引数でビンの分割数を設定します。cmapではカラーマップを選択できます。

カラーバーはcb = fig.colorbar(hb, ax=ax0, shrink=0.7)で表示し、shrink引数で長さを調整します。

ログスケールのカラーバーを作成するには、ax1.hexbin()にbins=’log’を指定します。

mincntを変化させた場合

ax.hexbin()でmincnt=2と指定すると、カウントが2未満のビンが表示されなくなります。

gridsizeを変化させた場合

ax.hexbin()関数では、gridsize値を大きくすると六角形のbinが細かく(小さく)なり、gridsize値を小さくするとbinが大きくなります。

edgecolorsを変化させた場合

ax.hexbin()のedgecolorsはデフォルトで”face”となっており、塗りつぶしのcmapと同じ色になります。edgecolors=”C2″のように指定することで、六角形の枠線の色を変更できます。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

まとめ

matplotlibのhexbin関数は、2次元データの分布を効果的に可視化するための強力なツールです。六角形のビンを使用することで、データの密度や分布をより自然かつ美しく表現できます。本記事で紹介した基本的な使い方やカスタマイズ方法を参考に、ぜひご自身のデータ分析や可視化に活用してみてください。

より高度な可視化や特定のデータセットに対する応用例については、matplotlibの公式ドキュメントや関連するデータ分析の書籍を参照することをお勧めします。

参考

matplotlib.pyplot.hexbin — Matplotlib 3.2.1 documentation

コメント