matplotlib.animationでアニメーションが表示されないときの対処法
アニメーションが表示されない
matplotlib.animationでエラーは出ていないもののアニメーションが表示されずに困ったので、その解決法について記します。
アニメーションが表示されなかったのは以下のコードです。
挿入ソートをアニメーションで可視化しようとしていました。
import numpy as np import matplotlib.pyplot as plt import random import matplotlib.animation as animation fig = plt.figure() ims = [] def insert_sort(arr): for i in range(1, len(arr)): j = i - 1 ele = arr[i] while arr[j] > ele and j >= 0: arr[j + 1] = arr[j] j -= 1 arr[j + 1] = ele im = plt.bar(x, y, color="Blue") ims.append(im) return arr y = [i for i in range(1,20)] x = [i for i in range(19)] random.shuffle(y) insert_sort(y) ani = animation.ArtistAnimation(fig, ims, interval=100) plt.show()
解決策
アニメーションが表示されなかったのは下記のコードが抜けていたのが原因でした。
%matplotlib nbagg
普段%matplotlib inlineはよく使いますが、アニメーションの場合はnbaggを使うようですね。
おわり