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

Matplotlibでcontourfプロットとsurface_plotを重ねて表示する方法

Matplotlibでcontourf(塗りつぶし等高線)プロットとsurface_plot(3Dサーフェスプロット)を同じ図上に重ねて表示するには、以下の手順に従います。

  • numpyを使用して、deltaxrangeyrange、x、y の各変数を初期化します。

  • figure()メソッドで新しい図を作成するか、既存の図をアクティブにします。

  • projection='3d' を指定して、現在の軸(Axes)を取得します。

  • x と y のデータポイントをもとに、3D等高線プロットを作成します。

  • x と y のデータポイントをもとに、サーフェス(表面)をプロットします。

  • 図を表示するには、show()メソッドを使用します。

サンプルコード

from matplotlib import pyplot as plt
import numpy as np

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

delta = 0.025
xrange = np.arange(-5.0, 20.0, delta)
yrange = np.arange(-5.0, 20.0, delta)
x, y = np.meshgrid(xrange, yrange)

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.contour(x, y, (np.sin(x) - np.cos(y)), [0])
ax.plot_surface(x, y, (np.sin(x) - np.cos(y)), cmap="afmhot_r")

plt.show()

実行結果

Matplotlibでcontourfプロットとsurface_plotを重ねて表示する方法

補足

Matplotlib 3.5以降では fig.gca(projection='3d') は非推奨となっているため、代わりに fig.add_subplot(projection='3d') を使用することが推奨されます。また、塗りつぶしのある等高線を重ねたい場合は ax.contourf() を利用することで、色付きの等高線面をサーフェスプロットと組み合わせて、より視覚的に分かりやすい3Dグラフを作成できます。

  1. MatplotlibでNaN値を含むデータをプロット・操作する方法を解説

    MatplotlibでNaN値をプロット・操作する手順 Matplotlibでは、NaN(欠損値)を含むデータもそのまま可視化できます。基本的な流れは以下の3ステップです。 NumPyを使って、NaN値をいくつか含むデータ(配列)を作成します。 imshow()メソッドを使用し、カラーマップとステップ1で作成したデータを指定して、2次元の正規ラスタ上に画像として表示します。デフォルトでは、NaNの部分は自動的に空白(マスクされた領域)として描画されます。 作成した図を画面に表示するには、show()メソッドを呼び出します。 コード例 import numpy as np from matp

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

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