Matplotlibでcontourfプロットとsurface_plotを重ねて表示する方法
Matplotlibでcontourf(塗りつぶし等高線)プロットとsurface_plot(3Dサーフェスプロット)を同じ図上に重ねて表示するには、以下の手順に従います。
numpyを使用して、delta、xrange、yrange、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 3.5以降では fig.gca(projection='3d') は非推奨となっているため、代わりに fig.add_subplot(projection='3d') を使用することが推奨されます。また、塗りつぶしのある等高線を重ねたい場合は ax.contourf() を利用することで、色付きの等高線面をサーフェスプロットと組み合わせて、より視覚的に分かりやすい3Dグラフを作成できます。
-
MatplotlibでNaN値を含むデータをプロット・操作する方法を解説
MatplotlibでNaN値をプロット・操作する手順 Matplotlibでは、NaN(欠損値)を含むデータもそのまま可視化できます。基本的な流れは以下の3ステップです。 NumPyを使って、NaN値をいくつか含むデータ(配列)を作成します。 imshow()メソッドを使用し、カラーマップとステップ1で作成したデータを指定して、2次元の正規ラスタ上に画像として表示します。デフォルトでは、NaNの部分は自動的に空白(マスクされた領域)として描画されます。 作成した図を画面に表示するには、show()メソッドを呼び出します。 コード例 import numpy as np from matp
-
Matplotlibで折れ線グラフをアニメーション化する方法を徹底解説
Matplotlibでは、FuncAnimationを活用することで、折れ線グラフに動きのあるアニメーション効果を簡単に加えることができます。本記事では、基本的な手順と実際に動作するサンプルコードを交えながら、その方法をわかりやすく解説します。折れ線グラフをアニメーション化する基本手順subplots()メソッドを使用して、図(figure)とサブプロットを作成します。x軸・y軸それぞれの表示範囲(スケール)を設定します。NumPyを使って、xおよびtのデータ点を生成します。座標ベクトルからmeshgrid()で座標行列X2とT2を作成します。plot()メソッドでxとFのデータを使い、折れ線