teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

回答を修正

2021/10/24 02:49

投稿

etherbeg
etherbeg

スコア1195

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  回答ではないのですが、matplotlib の[公式ドキュメントのアニメーションの説明ページ](https://matplotlib.org/stable/api/animation_api.html)や、そこからリンクされている FuncAnimation のサンプルプログラムを見ていると、plt.cla() を行なっているプログラムはひとつもありません。
2
2
  それでよくよくサンプルプログラムを見てみると、質問文で引用されている Qiita の FuncAnimation のプログラムは、FuncAnimation の使い方としては問題があるのではないでしょうか。
3
3
 
4
- Qiita のプログラムは関数の中で plt.cla() と plt.plot() をしていて、つまり関数が実行されるたびに Axes オブジェクトを削除して再度 Axes オブジェクトを生成するということを繰り返しているのですが、公式ドキュメントのプログラムを読むと、Axes オブジェクトを生成するのは関数の外で1回のみで、関数の中ではプロットのためのデータを変更しているだけのように読めます。
4
+ Qiita のプログラムは関数の中で plt.cla() と plt.plot() をしていて、つまり関数が実行されるたびに Axes オブジェクトを初期化して再度プロットをし直す ~~ Axes オブジェクトを削除して再度 Axes オブジェクトを生成する~~ ということを繰り返しているのですが、公式ドキュメントのプログラムを読むと、Axes オブジェクトの初期化は ~~Axes オブジェクトを生成するのは~~ 関数の外で1回のみで、関数の中ではプロットのためのデータを変更しているだけのように読めます。
5
5
 
6
6
  [公式ドキュメントのサンプルプログラム](https://matplotlib.org/stable/gallery/animation/simple_anim.html)を参考にして、Qiita のプログラムを書き換えてみました。
7
7