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

matplotlib.pyplotのhist2dでカラーバーを表示する方法

matplotlib.pyplothist2d(2次元ヒストグラム)でカラーバーを使用するには、fig.colorbar() メソッドに hist2d の戻り値である ScalarMappable インスタンスを渡します。以下に、具体的な手順とサンプルコードを紹介します。

実装手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • サンプルデータの個数を表す変数 N を初期化します。
  • NumPy を使って x および y のデータ点を作成します。
  • subplots() メソッドで図(Figure)とサブプロット(Axes)を作成します。
  • hist2d() メソッドで2次元ヒストグラムを描画します。
  • hist2d の戻り値から ScalarMappable インスタンスを取り出し、fig.colorbar() でカラーバーを作成します。
  • plt.show() メソッドで図を表示します。

サンプルコード

from matplotlib.colors import LogNorm
import matplotlib.pyplot as plt
import numpy as np

# 図のサイズを設定
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# サンプルデータの個数
N = 1000

# x と y のデータ点を作成
x = np.random.rand(N)
y = np.random.rand(N)

fig, ax = plt.subplots()

# x と y で2次元ヒストグラムを描画(対数スケールの正規化を使用)
hh = ax.hist2d(x, y, bins=40, norm=LogNorm())

# カラーバーを作成して追加
fig.colorbar(hh[3], ax=ax)

# グラフを表示
plt.show()

コードのポイント

ax.hist2d() は戻り値としてタプルを返し、その4番目の要素(インデックス3)がカラーマッピング情報を持つ QuadMesh オブジェクトです。このオブジェクトを fig.colorbar() に渡すことで、ヒストグラムのビン数(度数)に対応したカラーバーが表示されます。

また、サンプルコードでは LogNorm() を指定することで、カラースケールを対数スケールにしています。これにより、度数のばらつきが大きいデータでも分布が見やすくなります。線形スケールで問題ない場合は、norm=LogNorm() の指定を省略しても構いません。

出力結果

上記のコードを実行すると、2次元ヒストグラムの右側にカラーバーが表示された次のようなグラフが出力されます。

matplotlib.pyplotのhist2dでカラーバーを表示する方法

  1. MatplotlibでFigureからカラーバーのインスタンスを取得する方法

    概要MatplotlibでFigureからカラーバーのインスタンスを取得するには、imshow()が返すScalarMappableオブジェクトをcolorbar()メソッドに渡します。これにより、戻り値としてカラーバーのインスタンスを受け取ることができます。手順-1〜1の範囲の値を持つ10×10のランダムな配列データを生成します。imshow()メソッドを使用して、データを2次元の正規ラスタ(画像)として表示します。imshow()が返すScalarMappableインスタンスをcolorbar()に渡し、カラーバーを作成すると同時にそのインスタンスを取得します。show()メソッドを使用し

  2. Matplotlibでhist2dプロットにカラーバーを追加する方法

    Matplotlibのhist2dプロット(2次元ヒストグラム)にカラーバーを追加するには、colorbar()メソッドの引数にスカラーマッピング可能なオブジェクト(ScalarMappable)を渡します。 実装手順 NumPyを使ってxとyのデータポイントを作成します。 subplots()メソッドを使って、図とサブプロットを作成します。 hist2d()メソッドを使って、2次元ヒストグラムを描画します。 hist2dから返されるスカラーマッピングオブジェクトをもとに、colorbar()でカラーバーを作成します。 show()メソッドを使って、図を表示します。 コード例 import