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

2024-05-16 06:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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.]])

如何使用这个强大的工具来绘制鼠标轨迹?你知道吗


Tags: 工具数据代码trueplot绘制gifacross
1条回答
网友
1楼 · 发布于 2024-05-16 06:33:06

Hypertools只支持维度大于等于3的数据集的动画。您的鼠标数据是三维的,但其中一个轴是时间,因此将该维度可视化为动画可能没有多大用处。您可以尝试使用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()

相关问题 更多 >