3

我正在寻找一种方法来绘制(X,Y)平面内的多个点,并让它们一次出现(然后消失)一个。我总共有大约 400 个 (x,y) 点,它们是从惯性测量单元收集的位置跟踪信息。

每个数据点间隔大约 4 毫秒(我可以更改此间隔以使其更长),所以如果可能的话,我想一次显示一个点,每个点显示 4 毫秒,直到出现下一个点。最终产品应显示对象在 5-6 秒采样时间内的移动路径。在我的 excel 文件中,我有两列(一列用于 X,一列用于 Y),长度为 400 个元素(400 行)。

我希望有一种方法可以一次绘制一行 X、Y 散点信息,并寻找一些代码,这些代码将在每一行中递增并绘制相应的散点图。我是一个半流利的程序员,但以前从未使用过 MS Visual Basic。到目前为止,我发现的所有 Excel 解决方案(与我的问题类似)都涉及在 Visual Basic 中为图形编写代码。如果有人可以帮助我编写代码,我想我也许可以让它工作......但是如果有另一个软件可以做到这一点(免费!我有学生预算!)那么我愿意尝试多种解决方案。

我已经找到了这段代码:

Sub Macro1()
   Charts.Add
    ActiveChart.ChartType = xlXYScatter
    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A3:B3"), PlotBy _
        :=xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
    With ActiveChart.Axes(xlCategory)
        .MinimumScale = -30
        .MaximumScale = 30
        .MinorUnit = 1
        .MajorUnit = 5
        .Crosses = xlAutomatic
        .ReversePlotOrder = False
        .ScaleType = xlLinear
        .DisplayUnit = xlNone
    End With
    With ActiveChart.Axes(xlValue)
        .MinimumScale = 0
        .MaximumScale = 2800
        .MinorUnit = 50
        .MajorUnit = 100
        .Crosses = xlAutomatic
        .ReversePlotOrder = False
        .ScaleType = xlLinear
        .DisplayUnit = xlNone
    End With
     For I = 3 To Worksheets(1).Range("A65536").End(xlUp).Row
    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A3:B" & I), PlotBy _
        :=xlColumns
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
ST = Timer
    While Timer < ST + 1
    Wend
    Next I
End Sub

但是,由于没有评论或文档,我很难仔细阅读它并将其分开。我觉得一旦我能够真正理解 Visual basic 的格式,我就可以修改程序以适应我的特定需求……但理解它是第一步。

再说一次,我的信息采用 3 列的格式:X 位移 - Y 位移 - 时间戳(以 mm 为单位的位置)(以 mm 为单位的位置)(秒,或迭代 #,以更容易的为准)

4

0 回答 0