Python Matplotlibで多変量関数をプロットする方法
Pythonで多変量関数(複数の変数を持つ関数)を視覚的に表現したい場合、Matplotlibの散布図を活用すると、x・y・zの3つの変数の関係を1つのグラフ上で直感的に把握できます。ここでは、具体的な手順とサンプルコードを交えて解説します。
実装の手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- NumPyを使って、ランダムな x、y、z のデータ点を生成します。
- 図(figure)とサブプロット(axes)のセットを作成します。
- x・y・z のデータ点をもとに散布図を描画します。
- ScalarMappableインスタンス s に対してカラーバーを作成し、z値の色の対応関係を表示できるようにします。
- show() メソッドを呼び出して、図を画面に表示します。
サンプルコード
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
def func(x, y):
return 3 * x + 4 * y - 2 + np.random.randn(30)
x, y = np.random.randn(2, 30)
y *= 100
z = func(x, y)
fig, ax = plt.subplots()
s = ax.scatter(x, y, c=z, s=100, marker='*', cmap='plasma')
fig.colorbar(s)
plt.show()コードのポイント解説
このサンプルでは、関数 func(x, y) が「3x + 4y − 2」に正規乱数によるノイズを加えた値を返すよう定義されています。生成された z 値は散布図の c=z 引数に渡され、各マーカーの色として反映されます。
また、cmap='plasma' を指定することでカラーマップが適用され、fig.colorbar(s) によって色と z 値の対応関係が一目でわかるカラーバーが図の右側に追加されます。マーカーの形状は marker='*'、サイズは s=100 で指定しており、視認性の高いプロットになっています。
実行結果
このコードを実行すると、x・y を軸とした平面上に星形のマーカーが散布され、その色が z 値(関数の出力)に応じて変化するグラフが出力されます。これにより、2つの入力変数と出力値の関係を色の濃淡で同時に確認できます。
-
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次元