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

matplotlib.animationに対してffmpegを適切に有効にする方法は?


ma​​tplotlib.animationのffmpegを有効にするには 、次の手順を実行できます-

  • 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。

  • ffmpegを設定します ディレクトリ。

  • figure()を使用して、新しいフィギュアを作成するか、既存のフィギュアをアクティブにします メソッド。

  • 'ax1'を追加します サブプロットの配置の一部として図に。

  • 既存の軸に基づいて仕切りをプロットします。

  • プロットするランダムデータを作成して、データを画像として、つまり2Dの通常のラスターに表示します。

  • ScalarMappableのカラーバーを作成します インスタンス、 cb

  • タイトルを現在のフレームとして設定します。

  • カラーマップのリストを作成します。

  • 関数を繰り返し呼び出してアニメーションを作成し、アニメーション化します。この関数は新しいランダムデータを作成し、 imshow()を使用します データを画像として表示する方法。

  • パイプベースのffmpegのインスタンスを取得します 作家。

  • 現在のアニメーションフィギュアを保存します。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from mpl_toolkits.axes_grid1 import make_axes_locatable

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
plt.rcParams['animation.ffmpeg_path'] = 'ffmpeg'

fig = plt.figure()
ax = fig.add_subplot(111)
div = make_axes_locatable(ax)
cax = div.append_axes('right', '5%', '5%')
data = np.random.rand(5, 5)
im = ax.imshow(data)
cb = fig.colorbar(im, cax=cax)
tx = ax.set_title('Frame 0')

cmap = ["copper", 'RdBu_r', 'Oranges', 'cividis', 'hot', 'plasma']

def animate(i):
   cax.cla()
   data = np.random.rand(5, 5)
   im = ax.imshow(data, cmap=cmap[i%len(cmap)])
   fig.colorbar(im, cax=cax)
   tx.set_text('Frame {0}'.format(i))

ani = animation.FuncAnimation(fig, animate, frames=10)
FFwriter = animation.FFMpegWriter()
ani.save('plot.mp4', writer=FFwriter)

出力

コードを実行すると、「plot.mp4」という名前のmp4ファイルが作成され、プロジェクトディレクトリに保存されます。



  1. Matplotlibで3Dバーの凡例を作成するにはどうすればよいですか?

    matplotlibで3Dバーの凡例を作成するには、3Dバーをプロットし、legend()メソッドを使用して凡例を配置します。 ステップ 図のサイズを設定し、サブプロット間およびサブプロットの周囲のパディングを調整します。 figure()を使用して、新しいフィギュアを作成するか、既存のフィギュアをアクティブにします メソッド。 サブプロット配置の一部として図に軸を追加します。 numpyを使用して、データx3、y3、z3、dx、dy、dzのリストを作成します。 bar3d()を使用して3Dバーをプロットします メソッド。 凡例を配置するための長方形の軸を作成します。 lege

  2. フラスコでMatplotlibを表示する方法は?

    Flaskでプロットを表示するには、次の手順を実行できます- 小さなアプリケーションを作成します。 Flaskアプリケーションを実行するには、現在のディレクトリに移動します。 $ export FLASK_APP =file.py $フラスコ実行 ブラウザを開き、url:http://127.0.0.1:5000 /print-plot/を押します 図をプロットするために、ランダムを使用してxとyのデータポイントを作成できます。 作成した軸にデータポイントxとyをプロットします。 図をpng図形式で記述します。 BytesIOのコンテンツ全体を取得します オブジェクト。 例