我正在寻找一种方法来绘制(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 为单位的位置)(秒,或迭代 #,以更容易的为准)