在ASP.NET图表中显示差异线

时间:2017-10-18 09:37:47

标签: asp.net charts

我有一个从两个数据集生成的图表,它看起来像这样

Chart

正如您所见,红线稍早开始并稍后结束。红线上还有更多的数据点。

我想显示第三行显示两行之间的差异,我无法确定最佳方法。

数据来自datatable,然后我将其转换为图表。我已经考虑过将datatable分成两个表,然后计算差异,然后绘制所有三个,但由于时间戳和数据点的数量不同,我认为这不会起作用。

我在代码中生成图表,并且可以根据需要发布代码,但我更关注如何最好地完成此操作的程序(描述/想法)。

2 个答案:

答案 0 :(得分:0)

来自我的想法:

  1. 您可以测量两个时间的长度和时间的偏移量 数据集首先。
  2. 计算可以使用的最小插值时间片。
  3. 使用此切片时间和插值方法重现这两个数据集,以便以后进一步计算。
  4. 根据新的时间片减去这两组数据并生成第三组数据。
  5. 然后有三个具有相同时间片的数据集。
  6. 在决赛中,您可以展示其中的三个。
  7. PS。第三组数据取决于短数据集。

答案 1 :(得分:0)

我已经解决了这个问题,而不是删除我认为我会发布我的答案,因为它可能会帮助将来某人,因为这非常令人沮丧。

以下是我遵循的步骤

  1. 整理我的数据,即确保起点和终点相同,并且我有相同数量的数据点
  2. 这一步对我来说很关键 - 获取图表中每个系列的值。我用以下代码完成了这个。

    Dim firstSeries As New List(Of Double)
    
    For Each firstID As DataPoint In Chart1.Series(0).Points
    
        firstSeries.Add(firstID.YValues.FirstOrDefault)
    
    Next
    
  3. 我能够为这两个系列做到这一点,因此我可以找出差异。

  4. 然后我创建了一个新的数据表,并使用第一个数据表中的日期时间将这些值添加到其中(在我的初始问题中提到)。

  5. 然后我可以使用下面的

    将其绑定到图表

    Chart1.DataBindCrossTable(PONCDataTable.DefaultView,“tagname”,“timestamp”,“value”,“”)