Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2023, 16:57   #1
vyacheslovik
Новичок
Джуниор
 
Регистрация: 15.05.2023
Сообщений: 2
По умолчанию delphi TChart

Как сделать так чтобы в классе TChart я мог вводить в значение X я мог вводить строковые переменные (Делаю граффик по заданным данным где х - дата, y - какое либо значение)
procedure TForm1.Button1Click(Sender: TObject);

var y:real;
t:array [1..5] of real;
g : TStringList;
l : string;

begin
l := '1 2 3 4 5';
for var i:= 1 to 5 do
begin
g:= TStringList.Create;
g.Delimiter := ' ';
g.DelimitedText := l;
Chart1.Series[0].AddXY(i,StrToInt(g[i-1]))
end;

end;

end.
vyacheslovik вне форума Ответить с цитированием
Старый 15.05.2023, 18:20   #2
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
Сообщение

Предварительно добавьте график в дизайнере формы.
Код:
PROCEDURE TForm1.BitBtn1Click(Sender: TObject);
VAR
    i: Integer;
BEGIN
    WITH TStringList.Create DO BEGIN
        Delimiter := ' ';
        DelimitedText := '1.5 0.2 1.1 4.11 -1.8';
        FOR i := 0 TO Count - 1 DO
            Chart1.Series[0].AddXY(i, StrToFloat(Strings[i]));
        Free;
    END;
END;
Изображения
Тип файла: jpg screenshot.2.jpg (55.8 Кб, 22 просмотров)
Тип файла: jpg screenshot.3.jpg (40.3 Кб, 1 просмотров)
jillitil вне форума Ответить с цитированием
Старый 15.05.2023, 18:43   #3
vyacheslovik
Новичок
Джуниор
 
Регистрация: 15.05.2023
Сообщений: 2
По умолчанию

Насколько я понял код(плохо) можно использовать нецелые значение для даты, но мне нужно чтобы снизу в значениях x были значения формата 01.01.2023. Данные считываются с текстового файла с 4мя столбцами, где в 1 дата формата выше, а 3 другие различные числа. Код сейчас выглядит так
Код:
procedure TForm1.Button1Click(Sender: TObject);

var

EMA,a : real;
g : TStringList;
f : TextFile;
i,b : integer;
l : string;

begin
  a := StrToFloat(Edit2.Text);
  AssignFile(f, 'test.txt');
  reset(f);
  b := StrToInt(Edit1.Text);
  i:=1;
  Chart1.SeriesList[0].Clear;
  Chart1.SeriesList[1].Clear;
  while not EOF(f) do
    begin
    readln(f,l);
    g:= TStringList.Create;
    g.Delimiter := ' ';
    g.DelimitedText := l;
    Chart1.Series[0].AddXY(i,StrToInt(g[b]));
    if i = 1 then
      EMA := StrToInt(g[b])
    else
      EMA := StrToInt(g[b]) * a + (1 - a) * EMA;
    Chart1.Series[1].AddXY(i,EMA);
    i:=i+1
  end;
end;
Изображения
Тип файла: png z.png (45.6 Кб, 1 просмотров)
vyacheslovik вне форума Ответить с цитированием
Старый 15.05.2023, 19:20   #4
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 184
Сообщение

Код:
USES    DateUtils;
...
...
VAR
    i: Integer;
    S: TLineSeries;
    AxisDate: TDateTime;
BEGIN
    Chart1.View3D := False;
    S := TLineSeries.Create(Chart1);
    Chart1.AddSeries(S);

    AxisDate := Today;
    WITH Chart1.Series[0] DO BEGIN
        XValues.DateTime := True;
        FOR i := 0 TO 10 DO BEGIN
            AddXY(AxisDate,  Sin(i/5));
            AxisDate := IncDay(AxisDate);
        END;
    END;
Или (Рис.2) просто бросьте на форму ТЧарт и БитБатн. Код хитрый, кнопку можно жмакать несколько раз.
Код:
USES      Series, DateUtils;
PROCEDURE TForm1.BitBtn1Click(Sender: TObject);
VAR       i: Integer;
BEGIN
    Chart1.AddSeries(TLineSeries.Create(Chart1));
    WITH Chart1, Series[SeriesCount - 1], TStringList.Create DO BEGIN
        XValues.DateTime:= True;
        Delimiter := ' ';
        DelimitedText := '1.5 0.2 1.1 4.11 -1.8';
        FOR i := 0 TO Count - 1 DO
            AddXY(Today + i, StrToFloat(Strings[i]));
        Free;
    END;
END;
Изображения
Тип файла: jpg Безымянный.jpg (50.8 Кб, 16 просмотров)
Тип файла: jpg screenshot.6.jpg (88.5 Кб, 12 просмотров)

Последний раз редактировалось jillitil; 16.05.2023 в 01:01.
jillitil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 7, Tchart! Zurs Помощь студентам 0 30.06.2016 11:26
Tchart и delphi xe2 BARNEY Компоненты Delphi 1 20.12.2012 08:56
Удаление графика TChart Delphi McFrey Помощь студентам 12 16.12.2012 20:41
дата на Tchart из листа delphi SonicBob Помощь студентам 14 16.10.2011 11:36
Delphi: перегружается TChart WandererX Помощь студентам 4 06.06.2010 18:51