У меня возникают проблемы при попытке анимировать серию двумерных массивов в виде серии диаграмм рассеяния.
Первоначально входные данные поступают из слоя активации нейронной сети, который я преобразую в массив 2d (с размером500x2), и добавьте к списку.
допустим, я хочу построить каждый массив как точечный график, и сразу после точечного графика следующий массив и т. Д.
ims - этосписок nd массивов.он содержит 600 элементов, каждый элемент ims [i] является массивом размером 100,2.
класс tsne_animation имеет один метод для анимации серии диаграмм рассеяния.
Я написалэтот класс, который получает список массивов и использует пакет matplotlib.animation для задачи анимации.
импорт numpy как np импорт matplotlib.pyplot как plt импорт matplotlib.animation как анимация
класс tsne_animation:
def __init__(self, ims):
self._ims = ims
self._frames = []
def anim(self):
for i in range(len(self._ims)):
im = plt.scatter(self._ims[i][0], self._ims[i][1], animated=True)
self._frames.append([im])
fig = plt.figure()
ani = animation.ArtistAnimation(fig, self._frames, interval=50, blit=True,
repeat_delay=1000)
plt.xlim(-1, 1)
plt.ylim(-1, 1)
plt.show()
если имя ==' main ':
ims = []
for i in range(600):
t_arr = np.random.rand(100,2)
ims.append(t_arr)
a = tsne_animation(ims)
a.anim()
я получаю 2 цифры: одна полностью пуста, а другая содержит, возможно, 5 очков, прыгающих как сумасшедшие (действительно очень быстро, и, очевидно, нет100 баллов, как и ожидалось).Я хотел бы иметь серию изображений, переключаясь в медленном и приятном темпе, и, конечно, пустой сюжет не нужен.
Большое спасибо.