将2D数组序列作为散点图进行动画处理的最佳方法是什么?

时间:2018-12-20 16:08:44

标签: python animation matplotlib data-science scatter-plot

我在尝试为一系列的散点图制作2D阵列动画时遇到麻烦。

最初,输入来自神经网络激活层,我将其转换为numpy 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()

如果名称 =='主要':

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分)。 我想要一系列图像,以缓慢而舒适的速度切换,当然,不需要空白图。

非常感谢您。

0 个答案:

没有答案