比较图(折线图)

时间:2018-12-04 14:58:32

标签: python math graph

我正在尝试比较一组图表。 Plot我想将所有“薄”打印图与“厚”(-GoalGraphs)比较。

数据 -所有数据的长度和幅度略有不同(请参见下文)

  

图a:[315,92,60,46,36,33,29,28,26,24,23,22,20,21,19,19,18,17,18,17,16,17 ,16,16,17,16,16,17,16,17,16,17,15,17,16,17,16,17,17,16,16,16,16,16,17,17,16,17 ,16,16,16,15,16,17,17,16,16,17,16,17,16,17,16,16,17,16,16,16,16,16,17,16,17,16 ,17,18,16,18,18,18,18,19,19,20,20,23,30,40,56,69,62,59,55,59,66,78,79,75,84 ,77,72,73,79,83,86,586]

     

图形x:[302,88,56,45,38,34,30,28,25,25,22,22,20,20,18,19,17,18,17,16,17,16 ,16,16,16,16,16,15,16,17,16,16,17,16,16,17,16,16,16,16,17,16,17,17,17,16,17,17 ,17,17,17,18,17,18,19,19,19,20,23,27,37,49,69,64,61,56,55,60,71,79,75,78,87 ,73,75,78,79,81,590]

目标-我想检查“更细”图的形状是否与“更细”图的形状相同。因此,即使DataPoints的位置不正确匹配,我也希望算法能够识别出模式。

解决方案

  1. 我阅读了有关插值较粗的图并将其与其他图进行比较的信息。我可以找到插值图scipy的解决方案,但我不知道如何将其插值到其他图。我也不确定这是否与DataPoints“缺失”的图表相匹配(例如,抓图比目标图短)
  2. 我对Maschin Lerning或Pattern Recognition有所了解,我试图找到一些好的陈述要点,但领域非常大。

  3. 我尝试过Yakov Dan提到的

  

将numpy导入为np

     

array_a = [315,92,60,46,36,33,29,28,26 ...]

     

array_b = [302,88,56,45,38,34,30,28,25 ...]

     

print(np.correlate(array_a,array_b,'valid'),'valid')

     

这将导致[578559]有效

您能解释一下结果代表什么吗?

问题:-最佳方法是什么?有人可以给我提示从哪里开始,或者如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

首先归一化每个图的幅度,然后计算成对的互相关。

假设您有array_aarray_b,其中包含要比较的数据。您可以使用numpy对它们进行互相关,如下所示:

cc = np.correlate(array_a,array_b,mode ='full')。

cc是vector,而不是值。抄送包含的内容是array_aarray_b移位版本之间的相似性。当cc[0]偏移0时,array_a包含array_barray_b之间的相似性,cc[1]包含array_a和{{1}之间的相似性}当array_b移动1时 当array_b偏移2时,cc[2]array_a之间具有相似性,以此类推……对于array_b之间重叠的所有可能的偏移和array_b

看看是否可以从这里拿走