如何使用hypertools根据时间绘制关于鼠标轨迹的动态图形?

时间:2017-05-20 05:07:21

标签: python plot

我在kaggle找到了一个强大的工具hypertools。我发现它可以绘制动态图。只需一行代码。

hyp.plot(temps, normalize='across', animate=True, chemtrails=True)

enter image description here

抱歉,格式.gif超过2MB。所以我把它变成了图片。但是,你可以在this中看到这个gif。我觉得这很酷。但是,我不知道如何使用这些工具来绘制我的数据。我的数据是元组(x,y,t)的列表,如下所示:

array([[  353.,  2607.,   349.],
       [  367.,  2607.,   376.],
       [  388.,  2620.,   418.],
       [  416.,  2620.,   442.],
       [  500.,  2620.,   493.],
       [  584.,  2620.,   547.],
       [  675.,  2620.,   592.],
       [  724.,  2620.,   643.],
       [  780.,  2620.,   694.],
       [  822.,  2620.,   742.],
       [  850.,  2633.,   793.],
       [  885.,  2633.,   844.],
       [  934.,  2633.,   895.],
       [  983.,  2633.,   946.],
       [ 1060.,  2633.,  1006.],
       [ 1144.,  2633.,  1063.],
       [ 1235.,  2633.,  1093.],
       [ 1284.,  2633.,  1144.],
       [ 1312.,  2633.,  1210.],
       [ 1326.,  2633.,  1243.],
       [ 1333.,  2633.,  1354.],
       [ 1354.,  2633.,  1408.],
       [ 1375.,  2646.,  1450.],
       [ 1452.,  2659.,  1492.],
       [ 1473.,  2672.,  1543.],
       [ 1480.,  2672.,  1954.]])

如何使用这个功能强大的工具绘制鼠标轨迹?

1 个答案:

答案 0 :(得分:0)

Hypertools仅支持维度> gt = 3的数据集的动画。您的鼠标数据是3D,但其中一个轴是时间,因此将该维度可视化为动画可能没那么有用。您可以尝试使用animation中的matplotlib函数。例如:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation

fig, ax = plt.subplots()

data = np.random.randn(200,2)
line, = ax.plot(data[0,0], data[0,1])


def animate(i):
    line.set_data(data[:i,:].T)  # update the data
    return line,


# Init only required for blitting to give a clean slate.
def init():
    line.set_data(data[0,0], data[0,1])
    return line,

ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), 
init_func=init, interval=25, blit=True)
plt.xlim(min(data[:,0]), max(data[:,0]))
plt.ylim(min(data[:,1]), max(data[:,1]))
plt.show()