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

Matplotlibで回転する3Dグラフをアニメーション化する


matplotlibで回転する3Dグラフを作成するには、アニメーションを使用できます。 関数を繰り返し呼び出すためのクラス。

ステップ

  • メッシュグリッドの数、関数を呼び出すための1秒あたりの頻度、フレーム番号の変数を初期化します。

  • 曲線のx、y、z配列を作成します。

  • ラムダ関数を使用してz配列を作成する関数を作成します。

  • 関数をアニメーションクラスに渡すには、ユーザー定義関数を作成して前のプロットを削除し、x、y、zarrayを使用してサーフェスをプロットします。

  • 新しいフィギュアを作成するか、既存のフィギュアをアクティブにします。

  • subplots()メソッドを使用してサブプロット配置を追加します。

  • set_zlim()を使用してZ軸の制限を設定します メソッド。

  • アニメーションに電話する サーフェスプロットをアニメーション化するクラス。

  • アニメーションプロットを表示するには、 show()を使用します メソッド。

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

plt.rcParams["figure.figsize"] = [7.00, 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)
ani.save('526.gif')

plt.show()

出力

Matplotlibで回転する3Dグラフをアニメーション化する


  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、を繰り返し呼び出してアニメーショ