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
2 Datenreihen in 1 Chart
-
- Beiträge: 28
- Registriert: Di 8. Mär 2016, 11:46
- OS, Lazarus, FPC: Windows10
- CPU-Target: Win64
2 Datenreihen in 1 Chart
- Dateianhänge
-
- unit1.zip
- (2.3 KiB) 90-mal heruntergeladen
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.
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.
- Dateianhänge
-
- chart_2axes.zip
- (2.5 KiB) 76-mal heruntergeladen
-
- Beiträge: 28
- Registriert: Di 8. Mär 2016, 11:46
- OS, Lazarus, FPC: Windows10
- CPU-Target: Win64
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
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
-
- Beiträge: 28
- Registriert: Di 8. Mär 2016, 11:46
- OS, Lazarus, FPC: Windows10
- CPU-Target: Win64
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
Zum Abschluß dieses Themas schicke ich Dir mein Projekt wofür ich das gebraucht habe.
mfg, Wernkrau38
- Dateianhänge
-
- project1.zip
- (9.44 MiB) 82-mal heruntergeladen
Re: 2 Datenreihen in 1 Chart
Danke für die Rückmeldung.