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

Python Matplotlibで多変量関数をプロットする方法

Pythonで多変量関数(複数の変数を持つ関数)を視覚的に表現したい場合、Matplotlibの散布図を活用すると、x・y・zの3つの変数の関係を1つのグラフ上で直感的に把握できます。ここでは、具体的な手順とサンプルコードを交えて解説します。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • NumPyを使って、ランダムな xyz のデータ点を生成します。
  • 図(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つの入力変数と出力値の関係を色の濃淡で同時に確認できます。

  1. 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 を指定してマーカーの見た目

  2. Matplotlibを使ってPythonで3D密度マップを描画する方法を徹底解説

    MatplotlibとNumPyを組み合わせると、Pythonで簡単に3D密度マップ(濃度分布図)を作成できます。本記事では、pcolormesh()メソッドを使って擬似カラープロットとして密度マップを可視化する具体的な手順を、サンプルコード付きでわかりやすく解説します。 3D密度マップを描画する基本の手順 NumPyでデータを生成する:side、x、y、zの各データをNumPyで作成します。特にlinspace関数を使うと、指定した2点間の範囲を任意の分割数で等間隔にデータ生成できるため便利です。 座標行列を作成する:sideデータをもとにmeshgrid()を使い、座標ベクトルから2次元