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

0 ответов

Другие вопросы по тегам