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

Matplotlibで3Dplot_surfaceをアニメーション化する方法は?


Matplotlibで3Dplot_surfaceをアニメーション化するには、次の手順を実行できます-

  • メッシュグリッドの数の変数を初期化します(N) 、1秒あたりの頻度(fps) 関数を呼び出すには、フレーム番号を(frn)
  • xを作成します 、 y およびz 曲線の配列。
  • z配列を作成する関数を作成します ラムダ関数を使用します。
  • 関数をアニメーションクラスに渡す 、前のプロットを削除するユーザー定義関数を作成し、 xを使用してサーフェスをプロットします 、 y およびz-array。
  • 新しいフィギュアを作成するか、既存のフィギュアをアクティブにします。
  • subplots()を使用してサブプロットの配置を追加します メソッド。
  • set_zlim()を使用してZ軸の制限を設定します メソッド。
  • アニメーションクラスに電話する 表面プロットをアニメーション化します。
  • 図を表示するには、 show()を使用します メソッド。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

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

N = 50
fps = 250
frn = 75

x = np.linspace(-4, 4, N + 1)
x, y = np.meshgrid(x, x)
zarray = np.zeros((N + 1, N + 1, frn))

f = lambda x, y, sig: 1 / np.sqrt(sig) * np.exp(-(x ** 2 + y ** 2) / sig ** 2)

for i in range(frn):
   zarray[:, :, i] = f(x, y, 1.5 + np.sin(i * 2 * np.pi / frn))

def change_plot(frame_number, zarray, plot):
   plot[0].remove()
   plot[0] = ax.plot_surface(x, y, zarray[:, :, frame_number], cmap="afmhot_r")

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

plot = [ax.plot_surface(x, y, zarray[:, :, 0], color='0.75', rstride=1, cstride=1)]

ax.set_zlim(0, 1.1)
ani = animation.FuncAnimation(fig, change_plot, frn, fargs=(zarray, plot), interval=1000 / fps)

ax.axis('off')

plt.show()
出力

Matplotlibで3Dplot_surfaceをアニメーション化する方法は?


  1. Matplotlibでpcolormeshをアニメーション化する方法は?

    pcolormeshをアニメーション化するには matplotlibでは、次の手順を実行できます- 図とサブプロットのセットを作成します。 numpy を使用してx、y、tデータポイントを作成します 。 X3を作成します 、 Y3 およびT3、メッシュグリッドを使用して座標ベクトルから座標行列を返します。 pcolormesh()を使用して、不規則な長方形グリッドで疑似カラープロットを作成します メソッド。 colormeshでカラーバーを作成する 軸。 pcolormeshをアニメーション化する Animation()を使用する クラスメソッ

  2. Matplotlibで折れ線グラフをアニメーション化する方法は?

    matplotlibで折れ線グラフをアニメーション化するには、次の手順を実行できます- subplots()を使用して、図とサブプロットのセットを作成します メソッド。 x軸とy軸のスケールを制限します。 numpyを使用してxおよびtデータポイントを作成します。 座標ベクトルX2およびT2から座標行列を返します。 plot()を使用して、xおよびFデータポイントで線をプロットします メソッド。 アニメーションプロットを作成するには、yデータを更新します。 関数*func *、current fig、animate、を繰り返し呼び出してアニメーショ