gpt4 book ai didi

python - 如何绘制两个数据点序列之间的点对点对齐?

转载 作者:行者123 更新时间:2023-11-28 22:42:31 24 4
gpt4 key购买 nike

我正在使用 Dynamic Time Warping 处理时间序列。我需要绘制两个序列的数据点之间的比对:

t=[t1,t2,t3,...,tx]
s=[s1,s2,s3,...,sy]

两个序列的长度可能不同。我也有哪些点匹配,说:

[(1,1),(1,2), (2,2), (3,3), (4,3), (4,4)]

这被解读为:

t[1] matches s[1]   
t[1] matches s[2]
t[2] matches s[2]
...
t[4] matches s[4]

我想要实现的是这样的:

enter image description here

或者甚至更好,像这样(即只有两个序列及其对齐): enter image description here

我知道 dtw 包的存在,尽管它似乎不包含绘制对齐的方法。我对使用 Python 进行绘图还很陌生,所以当涉及到 matplotlib 和 numpy 时,我仍然一无所知,或者至少我不确定使用它们的最佳方法。

总而言之,我只需要知道如何绘制两个序列,一个在另一个之上(我相信子图可能有帮助,我相信?)并使用 Python 在每个数据点之间画一条线。

最佳答案

您应该能够使用 plt.plot 绘制 s 和 t。在它们之间划线有点棘手。我假设 x 轴对应于 s 和 t 的第 x 个元素。在这种情况下,如果 s 的第 i 个元素和 t 的第 j 个元素配对,您可以使用 plt.plot((i, j), (s[i], t[j] ), color = '黑色')

import matplotlib.pyplot as plt
#plot signals
plt.plot(y1, label = 'Signal 1')
plt.plot(y2, label = 'Signal 2')
#plot alignment
for i, j in matches:
plt.plot((i, j), (y1[i], y2[j]), color = 'black')
plt.show()

关于python - 如何绘制两个数据点序列之间的点对点对齐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31599602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com