Python Matplotlibで密度マップをプロットする方法を徹底解説
PythonのMatplotlibを使って密度マップ(ヒートマップ)をプロットするには、pcolormesh()メソッドを利用するのが便利です。この記事では、NumPyでデータを生成し、擬似カラープロットとして可視化するまでの手順をコード例とともに解説します。
密度マップを描く基本の手順
NumPyを使ってside(軸の範囲)、x、y、zのデータを作成します。NumPyのlinspace関数を使うと、指定した区間を任意の分割数で等間隔にサンプリングしたデータを簡単に生成できます。
meshgrid()関数にsideのデータを渡し、1次元の座標ベクトルから2次元の座標行列(メッシュグリッド)を作成します。
xとyの値をもとに、ガウス関数(指数関数)を使ってzの値を計算します。
pcolormesh()メソッドを使い、非正規矩形グリッド上に擬似カラープロット(密度マップ)を描画します。
最後にshow()メソッドを呼び出して、図を画面に表示します。
コード例
from matplotlib import pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.00, 3.50] plt.rcParams["figure.autolayout"] = True # -2から2までの範囲を15分割したデータを作成 side = np.linspace(-2, 2, 15) # 座標行列(メッシュグリッド)を生成 X, Y = np.meshgrid(side, side) # ガウス関数でZの値を計算 Z = np.exp(-((X - 1) ** 2 + Y ** 2)) # 擬似カラープロット(密度マップ)を描画 plt.pcolormesh(X, Y, Z, shading='auto') plt.show()
実行結果

コードのポイント解説
np.linspace(-2, 2, 15)は、-2から2までの範囲を15個の等間隔の点に分割した配列を返します。続くnp.meshgrid(side, side)は、この1次元配列からx方向・y方向それぞれの2次元座標行列XとYを生成します。
Zの計算では、np.exp(-((X - 1) ** 2 + Y ** 2))とすることで、中心が(1, 0)の位置にずれたガウス分布(釣鐘型の分布)になります。その結果、図の右側ほど明るく、左側ほど暗くなる密度マップが描かれます。
pcolormesh()の引数shading='auto'を指定すると、X・Y・Zの配列形状に応じて適切なシェーディング方式が自動的に選択されます。また、plt.colorbar()を追加すればカラーバーを表示でき、値の大小関係がひと目でわかる、より見やすいグラフになります。
-
Python Matplotlibで単一のポイント(点)をプロットする方法
Matplotlibを使えば、たった1つのデータポイントでも簡単にグラフ上へプロットできます。ここでは、単一の点をプロットするための基本的な手順を解説します。 単一ポイントをプロットする手順 x と y のリストを、単一の値で初期化します。 plt.xlim() および plt.ylim() を使って、X軸・Y軸の表示範囲を0〜5に設定します。 plt.grid() を呼び出して、現在の線スタイルでグリッドを描画します。 plot() メソッドでxとyをプロットし、marker=o、markeredgecolor=red、markerfacecolor=green を指定してマーカーの見た目
-
Matplotlibを使ってPythonで3D密度マップを描画する方法を徹底解説
MatplotlibとNumPyを組み合わせると、Pythonで簡単に3D密度マップ(濃度分布図)を作成できます。本記事では、pcolormesh()メソッドを使って擬似カラープロットとして密度マップを可視化する具体的な手順を、サンプルコード付きでわかりやすく解説します。 3D密度マップを描画する基本の手順 NumPyでデータを生成する:side、x、y、zの各データをNumPyで作成します。特にlinspace関数を使うと、指定した2点間の範囲を任意の分割数で等間隔にデータ生成できるため便利です。 座標行列を作成する:sideデータをもとにmeshgrid()を使い、座標ベクトルから2次元