SrinivasEng Ответов: 1

Как прокрутить диаграмму MS вдоль оси x в vb.net


У меня есть график в моем приложении, в котором точки подобны паре времени и значения.
Время по оси X и значение по оси y. и за каждую секунду или 100 мильсекунд на график будет добавляться новая точка.

Здесь проблема заключается в том, что при добавлении новой точки точки графика становятся ближе, но я хочу переместить или прокрутить старые точки влево от графика.

Я добавляю сюда свои фрагменты кода..


Private Sub Graph_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        XVal = DateTime.Now
        YVal = rnd.Next(50, 100)
        With Chart1.Series(0)
            .Name = "Sample"
            .ChartType = SeriesChartType.Spline
            .Color = Color.Black
            .IsValueShownAsLabel = False
            .IsXValueIndexed = False
            .Points.AddXY(XVal, YVal)
        End With
        With Chart1.ChartAreas(0)
            .AxisX.IntervalType = DateTimeIntervalType.Minutes
            .AxisX.Interval = 1
            .AxisY.Interval = 10
            .AxisX.LabelStyle.Angle = -90
            .AxisX.Title = "TimeStamp"
            .AxisY.Title = "Units"
            .CursorX.IsUserEnabled = True
            .CursorX.IsUserSelectionEnabled = True
            .CursorX.IntervalType = DateTimeIntervalType.Minutes
            .CursorX.Interval = 0.5D


            .AxisX.ScaleView.SmallScrollSizeType = DateTimeIntervalType.Minutes
            .AxisX.ScaleView.SmallScrollSize = 0.5D
            .AxisX.ScaleView.Zoomable = True
            .AxisX.LabelStyle.Format = "hh:mm:ss"
            .AxisX.ScrollBar.Enabled = True
                    End With
    End Sub


Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.tick
        Chart1.Series(0).Points.AddXY(DateTime.Now, rnd.Next(50, 100)
    End Sub




Мне нужна помощь в этом как можно скорее, любая помощь будет очень полезна

1 Ответов

Рейтинг:
1

Member 14071843

Я понимаю, что прошло уже 5 лет с тех пор, как ОП опубликовал свой пост, но на случай, если кто-то еще наткнется на этот пост с той же проблемой.

Это пример того, что я использовал в одном из своих проектов:

Chart1.Series("LoadCell").Points.AddY(receivedData)
Chart1.ResetAutoValues()

If Chart1.Series("LoadCell").Points.Count >= 100 Then
     Chart1.Series("LoadCell").Points.RemoveAt(0)
End If

Он автоматически масштабирует ось y, а также ограничивает ось x до 100, удаляя первую запись, когда записи превышают 100.

Надеюсь, это поможет.