Список, который вы предоставляете ArtistAnimation
, должен быть списком художников, по одному списку на кадр.
artist_list = [[line1a, line1b, title1], [line2a, line2b, title2], ...]
, где первый список отображается в первом кадре, второй список во втором кадре и т. Д.
Причина, по которой ваш код работает, заключается в том, что ax.plot
возвращает список строк(в вашем случае только список из одной строки).
В любом случае, следующая версия может быть более понятной версией вашего кода, где дополнительный текст анимирован.
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
artist_list = []
for i in range(60):
x = np.linspace(0,i,1000)
y = np.sin(x)
line, = ax.plot(x,y, color='black')
text = ax.text(i,0,i)
artist_list.append([line, text])
ani = animation.ArtistAnimation(fig, artist_list, interval=50, blit=True,
repeat_delay=1000)
plt.show()
В общем, будет сложно анимировать изменение границ осей с помощьюArtistAnimation
, поэтому, если это конечная цель, рассмотрите возможность использования FuncAnimation
.