我在尝试为一系列的散点图制作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分)。 我想要一系列图像,以缓慢而舒适的速度切换,当然,不需要空白图。
非常感谢您。