Диаграмма рассеяния X,Y с анимацией
Я ищу способ построить несколько точек в плоскости (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 - метка времени (позиция в мм) (позиция в мм) (секунды или итерация #, в зависимости от того, что проще)