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

Matplotlibで z = f(x, y) の滑らかな2Dカラープロットを作成する方法

Matplotlibを使って z = f(x, y) の滑らかな2次元カラープロットを作成するには、imshow() 関数に補間(interpolation)を指定するのが簡単な方法です。以下の手順で実装できます。

実装の手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  • NumPy を使って xy のデータ点を生成します。
  • 関数 f(x, y) を用いて z のデータ点を計算します。
  • imshow() メソッドで、2次元の正規ラスタ上に画像としてデータを表示します。このとき、滑らかに見せるために補間方法として bilinear(バイリニア補間)を指定します。
  • show() メソッドを呼び出して図を表示します。

コード例

import numpy as np
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

def f(x, y):
    return np.array([i * i + j * j for j in y for i in x]).reshape(5, 5)

x = y = np.linspace(-1, 1, 5)
z = f(x, y)

plt.imshow(z, interpolation='bilinear')

plt.show()

実行結果

このコードを実行すると、5×5のグリッドデータがバイリニア補間によって滑らかに補完され、色のグラデーションがなめらかな2Dカラープロットとして表示されます。データ点が少なくても、補間を指定することで見た目の良い連続的なカラーマップが得られるのがポイントです。

なお、より精細な等高線ベースのカラープロットが必要な場合は、plt.contourf() を使う方法もあります。imshow() はピクセル単位の画像表示に適しており、contourf() は値の等高線に基づいた塗り分けに適しています。用途に応じて使い分けるとよいでしょう。

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

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

  2. Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説

    Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線