Как лучше всего анимировать серии двумерных массивов в виде графиков рассеяния? - PullRequest
0 голосов
/ 20 декабря 2018

У меня возникают проблемы при попытке анимировать серию двумерных массивов в виде серии диаграмм рассеяния.

Первоначально входные данные поступают из слоя активации нейронной сети, который я преобразую в массив 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 баллов, как и ожидалось).Я хотел бы иметь серию изображений, переключаясь в медленном и приятном темпе, и, конечно, пустой сюжет не нужен.

Большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...