|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
Как построить график Chart?
Необходимо построить график. По оси Y - числовое значение, по оси Х - дата и время. Но время чаще, чем раз в секунду. Т.е. данные такие, например:
12.11.2019 00:00:01 - 134 12.11.2019 00:00:01 - 136 12.11.2019 00:00:01 - 134,5 12.11.2019 00:00:01 - 135 Но при построении через ADDXY получается вертикальная линия. Раньше я это как-то делал, т.е. это возможно, но уже забыл как. Подскажите пожалуйста, очень нужна помощь... |
#2
|
|||
|
|||
Ну добавть еще одно число в Х. Что-то типа:
12.11.2019 00:00:01 01 - 134 12.11.2019 00:00:01 02 - 136 12.11.2019 00:00:01 03 - 134,5 12.11.2019 00:00:01 04 - 135 Это самое простое. По коду, там просто заводишь счетчик и переменую для пред. значения. Ну и в цикле это все делаешь. Если текущее значение совпадает с предыдущим, то увеличиваешь счетчик, если нет - то сбрасываешь. Что-то типа: Код:
type TMyData = record Timestamp : String; Value : Double; end; procedure TForm1.BuildChart(A : Array Of TMyData); var I, C : Integer; T : String; begin T := 0; C := 0; For I := Low(A) To High(A) Do begin If T = A[i].Timestamp Then Inc(C) Else C := 1; Chart1.Series[0].AddXY(Format('%s %2d',[A[i].Timestamp,C]),A[i].Value); T := A[i].Timestamp; end; end; Последний раз редактировалось lmikle, 15.12.2019 в 22:54. |