2 Datenreihen in 1 Chart

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.

2 Datenreihen in 1 Chart

Beitragvon wernkrau38 » 19. Dez 2016, 16:04 2 Datenreihen in 1 Chart

Hallo,
Ich will in einer Grafik 2 Linien darstellen, die sich im Wert stark unterscheiden. Deswegen habe ich eine 2. Y-Achse, die sich auf die rote Linie beziehen soll.
Geht aber noch nicht; wie kann man das verknüpfen?

Wernkrau
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
wernkrau38
 
Beiträge: 17
Registriert: 8. Mär 2016, 11:46
OS, Lazarus, FPC: Windows10 | 
CPU-Target: Win64
Nach oben

Beitragvon wp_xyz » 19. Dez 2016, 17:21 Re: 2 Datenreihen in 1 Chart

  • Im Objektbaum über dem Objektinspektor eine 2.Achse hinzufügen. Alignment = calLeft oder calRight, je nachdem ob die Achse links oder rechts sein soll (das hast du schon gemacht).
  • Für jede y-Achse eine TChartTransformations-Komponente einfügen, Doppelklick auf jeder der beiden, Autoscale-Transform einfügen. Bei jeder der beiden y-Achsen im Feld Transformations die zugehörige Komponente eintragen. Damit wird unter dem Chart ein unsichtbares "Millimeter-Papier" aktiviert, das für die Skalierung der Achsen zuständig ist. Die Grenzen des Millimeterpapiers stehen in den Eigenschaften MinValue und MaxValue jeder AutoScale-Transform. Die Default-Werte 0 und 1 kannst du lassen - das heißt, dass sich jede Achse auf diesem unsichtbaren Koordensystem zwischen 0 und 1 erstreckt - d.h.: beide Achse sind gleich groß. Durch Ändern der Werte einer oder beider AutoScale-Transforms kannst du später die Kurven zusätzlich gegeneinander veschieben.
  • Trage den Index der Achse, auf der jede Serie geplottet werden soll, im Feld AxisIndexY der Series ein. Den Index findest du im Objekt-Baum. Achte bei AxisIndexX darauf, dass dort -1 oder der Index der gemeinsamen x-Achse steht.
  • Falls beide Achsen auf derselben Seite liegen, solltest du AxisPen.Visible der äußeren Achse (oder gleich beider Achen) auf true schalten.
  • In der Default-Einstellung sind die beiden Achsen sehr nah beieinander. Du kannst mit LabelsSize der inneren Achse den Abstand vergrößern (Achtung: Der Standard-Wert 0 heißt "automatisch", d.h. es wird schon ein bestimmter Wert angenommen. Wenn dein eingegebener Wert zu klein ist, rücken die Achsen zusammen, statt auseinander. Nicht verzagen: einfach einen größeren Wert ausprobieren.
  • Um die Zuordnung von Achse zu Series visuell zu unterstützen, gebe ich den Achsenelementen (Linie, Ticks, Labels, Titel) dieselbe Farbe wie der Series.
Der ganze Vorgang ist im Tutorial http://wiki.lazarus.freepascal.org/TACh ... is,_Legend nochmals beschrieben

Ich füge dein geändertes Projekt an. Ich habe zusätzlich die x-Achse im Objekt-Baum nach oben geschoben, so dass jede y-Achse denselben Index hat wie die Nummer der Transformations-Komponente. Und ich habe im FormCreate außerdem für die y-Werte der 2. Series ein Minuszeichen gesetzt, weil sonst die beiden Kurven auf der gespreizten y-Achse exakt zusammenfallen.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
wp_xyz
 
Beiträge: 2183
Registriert: 8. Apr 2011, 08:01

Beitragvon wernkrau38 » 19. Dez 2016, 19:40 Re: 2 Datenreihen in 1 Chart

Hallo,
Herzlichen Dank für die schnelle Hilfe. Danach habe ich lange gesucht.
Jetzt schaue ich mir das Kapitel Transformation mal in Ruhe an.

Gruß, Wernkrau38
wernkrau38
 
Beiträge: 17
Registriert: 8. Mär 2016, 11:46
OS, Lazarus, FPC: Windows10 | 
CPU-Target: Win64
Nach oben

Beitragvon wernkrau38 » 4. Jan 2017, 10:04 Re: 2 Datenreihen in 1 Chart

hallo WP_xyz,
Zum Abschluß dieses Themas schicke ich Dir mein Projekt wofür ich das gebraucht habe.

mfg, Wernkrau38
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
wernkrau38
 
Beiträge: 17
Registriert: 8. Mär 2016, 11:46
OS, Lazarus, FPC: Windows10 | 
CPU-Target: Win64
Nach oben

Beitragvon wp_xyz » 4. Jan 2017, 10:55 Re: 2 Datenreihen in 1 Chart

Danke für die Rückmeldung.
wp_xyz
 
Beiträge: 2183
Registriert: 8. Apr 2011, 08:01

• Themenende •

Zurück zu Programmierung



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
porpoises-institution
accuracy-worried