[gelöst] Einfache Chartanzeige

Rund um die LCL und andere Komponenten
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1663
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

[gelöst] Einfache Chartanzeige

Beitrag von fliegermichl »

Ich habe eine Liste von Werten, deren Entwicklung ich mir in einem einfachen Linienchart anzeigen lassen wollte.

Code: Alles auswählen

type
 RItem = record
  Tag : integer;
  Bestand : Double;
  Kosten : Double;
 end;
 RItemArray = array of RItem;
Aber, ich krieg's nicht hin.
Meine Liste hat 16 Records mit entsprechenden Einträgen.

Wie kann ich diese mit den Tagen in der X Achse und Bestand (grüne Linie) und Kosten (rote Linie) darstellen lassen?

Die Demos zeigen alle möglichen komplizierten Lösungen aber zu so etwas grundlegendem konnte ich nichts finden.
Zuletzt geändert von fliegermichl am Fr 20. Jun 2025, 15:53, insgesamt 1-mal geändert.

Benutzeravatar
theo
Beiträge: 10927
Registriert: Mo 11. Sep 2006, 19:01

Re: Einfache Chartanzeige

Beitrag von theo »

Ich habe keine Ahnung, hab's nur eben kurz versucht.
Bei TChart fügst du Series hinzu.
Dann kannst du diese Füllen, z.B. so:

Code: Alles auswählen

procedure TForm1.FormCreate(Sender: TObject);
begin
  Chart1LineSeries1.AddXY(2,2);
  Chart1LineSeries1.AddXY(3,3);
  Chart1LineSeries1.AddXY(4,2);
  Chart1LineSeries1.AddXY(5,2.5);

  Chart1LineSeries2.AddXY(2,1);
  Chart1LineSeries2.AddXY(3,2);
  Chart1LineSeries2.AddXY(4,3);
  Chart1LineSeries2.AddXY(5,2.5);
end;    
Farbe etc. kann man im Eigenschaftseditor einstellen.
Das fand ich jetzt nicht so kompliziert. Oder meinst du was anderes?

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1663
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Einfache Chartanzeige

Beitrag von fliegermichl »

Danke Theo, das hatte ich zwischenzeitlich auch rausgefunden.

Ich hab nur die ganze Zeit gedacht. Wieso wird die grüne Kurve richtig und die rote falsch angezeigt?

Wird sie nicht.
Wenn sich der eine Wert um tausende erhöht und der andere aber nur um ein paar 0.002, werden beide ins gleiche Verhältnis gesetzt und dann schaut es so aus, als würde der zweite Wert gar nicht erhöht.

wp_xyz
Beiträge: 5193
Registriert: Fr 8. Apr 2011, 09:01

Re: [gelöst] Einfache Chartanzeige

Beitrag von wp_xyz »

Ich verstehe jetzt nicht genau, was du meinst mit: "ins gleiche Verhältnis gesetzt". Aber falls die eine Series sehr große Werte beinhaltet und die andere sehr kleine, dann solltest du mit zwei y-Achsen arbeiten. Wie das geht, habe ich im wiki einmal zusammengeschrieben: https://wiki.lazarus.freepascal.org/TAC ... is,_Legend (ignoriere das mit der UserDefinedChartseries, so wie theo vorgeschlagen hat, geht es auch). Im Anhang ein kleines Beispiel-Projekt (beachte, dass alle wesentlichen Einstellungen im Objektinspektor gemacht sind)
Dateianhänge
strom_spannung.zip
(2.39 KiB) 25-mal heruntergeladen

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1663
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: [gelöst] Einfache Chartanzeige

Beitrag von fliegermichl »

Mein Fehler war einfach, daß ich Äpfel mit Birnen verglichen habe, wobei ein Apfel 0,004325 € und eine Birne 123,5 € kostet.
Rechne ich vorher beide in die gleiche Einheit um, kommt auch ein vernünftiges Ergebnis bei raus.

Dennoch vielen Dank für das Beispielprojekt. Ich werde mir das genauer anschauen.

Antworten