Ajuda - Busca - Membros - Calendário
Versão Completa: Gráfico
Fórum Script Brasil > Programação & Desenvolvimento > Delphi, Kylix
VDLR
Pessoal estou precisando de ajuda para montagem de um gráfico.
O caso é o seguinte, preciso montar um gráfico onde o eixo X seja composto de data e hora e o eixo Y suba de acordo com o tempo marcado no eixo X.

Exemplo:

Eixo X recebe os seguintes valores

25/02/08 – 23:40
26/02/08 – 01:40
26/02/08 – 03:40
26/02/08 – 05:40
26/02/08 – 07:40
etc.

Eixo Y receba os seguintes valores

1º linha 300
400
500
600
700


2º linha 250
350
450
550
650

Etc.

Abraços

Valdecir
wacko.gif wacko.gif
Micheus
QUOTE(VDLR @ 26/02/2008 - 13:36) *
Pessoal estou precisando de ajuda para montagem de um gráfico.
O caso é o seguinte, preciso montar um gráfico onde o eixo X seja composto de data e hora e o eixo Y suba de acordo com o tempo marcado no eixo X.

Se você vai adicionar as séries em run-time, pode proceder mais ou menos assim:
- adiciona um TChart (paleta Additional);
- dá um duplo-click nele e configura o que precisar, depois, em Séries, seleciona Serie1 e clica em Delete;
- se você precisar que o gráfico mostre os valores em Y desde 0 até o maior valor, você deve acessar a guia Axis e na sub-guia Scales, desmarca Automatic; marca Auto para Maximum e em Minimum, clica em Change e define 0 (zero);
- No Object Inspector, você seleciona a propriedade BottomAxis, expande ela e configura a propriedade LabelsAngle para 90º para que apareçam as data/horas.

Depois no código:
CODE
procedure TForm1.BtnIncluiClick(Sender :TObject);
  procedure InsertSerieValue(Serie :TChartSeries; StrDateTime :String; Value :Double);
  begin
    Serie.AddXY(StrToDateTime(StrDateTime), Value, StrDateTime);
  end;
var
  LineSerie :TLineSeries;
begin
  LineSerie := TLineSeries.Create(Self);
  InsertSerieValue(LineSerie, '25/02/2008 23:40', 300);
  InsertSerieValue(LineSerie, '26/02/2008 01:40', 400);
  InsertSerieValue(LineSerie, '26/02/2008 03:40', 500);
  InsertSerieValue(LineSerie, '26/02/2008 05:40', 600);
  InsertSerieValue(LineSerie, '26/02/2008 07:40', 700);
  Chart1.AddSeries(LineSerie);

  LineSerie := TLineSeries.Create(Self);
  InsertSerieValue(LineSerie, '25/02/2008 23:40', 250);
  InsertSerieValue(LineSerie, '26/02/2008 01:40', 350);
  InsertSerieValue(LineSerie, '26/02/2008 03:40', 450);
  InsertSerieValue(LineSerie, '26/02/2008 05:40', 550);
  InsertSerieValue(LineSerie, '26/02/2008 07:40', 650);
  Chart1.AddSeries(LineSerie);

  ...
end;


Para limpar o gráfico, liberando as series alocadas, faça assim:
CODE
...
  while Chart1.SeriesList.Count > 0 do
    Chart1.Series[0].Free;
...


é por aí....

Abraços
VDLR
Micheus, beleza.

Cara vou dar uma olhada e qualquer coisa e posto.

Abraço

Valdecir


Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.