Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   TChart: zu viele X-Achs-Labels (https://www.delphipraxis.net/183787-tchart-zu-viele-x-achs-labels.html)

killamac 4. Feb 2015 16:54

TChart: zu viele X-Achs-Labels
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Miteinander,

das Problem mit den überlappenden X-Achs Labels tauchte schon öfter mal auf, eine Lösung
für mein Problem hatte ich bisher noch nicht entdeckt, daher folgende Fragen:

1. Ist es möglich, bei einzelnen Serien zu unterbinden, ihre X-Labels in die Labels der Bottom Achse
zu schreiben. Wenn dies passiert, überlappen die Labels massiv, sodaß sie nicht mehr zu lesen sind.

2. Ich hatte bereits versucht, die X-Achs Labels mit dem GetAxisLabel-Event zu verändern. Dort gibt es
einen Parameter ValueIndex, der den jeweiligen Index der Labels representieren soll. Ich habe Testweise den
ValueIndex als Label auszugeben. Das Funktioniert zwar, allerdings tauchen manche Index-Nummern mehrfach auf,
was natürlich quatsch ist!
Damit könnte man normalerweise manche Labels weglassen, damit sie sich nicht überlappen.
Mit doppelt vorkommenden Indizes macht das nicht allzuviel Sinn, oder?
Beim Debuggen hat der ValueIndex-Parameter immer den Wert -1. Lasse ich es durchlaufen, wird statt -1
tatsächlich ein Index ausgegeben, aber wie schon gesagt, manchmal doppelt.
Sehr merkwürdig.

Hat jemand eine Idee, wie ich die Labels lesbar bekomme?

Der schöne Günther 4. Feb 2015 17:08

AW: TChart: zu viele X-Achs-Labels
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo-

Kannst du einmal angeben welche Delphi / TeeChart-Version im Einsatz ist?

Ansonsten ist das was du darstellst nicht das Standard-Verhalten was Achsenbeschriftungen angeht. Unter Bottom Axis -> Labels -> Style hast du Style = Mark (oder "Point Value") eingestellt, richtig? Normal steht das auf Auto: Dann wird die Achse regelmäßig beschriftet.

Wenn du die Achse explizit nur dort beschriften wo Werte eingetragen wurden gibt es, soweit ich weiß, keinen Automatismus der für dich entscheiden kann welches Label du jetzt setzen möchtest oder nicht.
Ich würde die Achse regelmäßig beschriften und bei interessanten Punkten dynamisch Zusatzinformationen einblenden (wie XY-Koordinaten) wenn man z.B. mit der Maus draufklickt.


PS: Siehe auch: http://www.teechart.net/support/view...php?f=3&t=4118

killamac 5. Feb 2015 09:41

AW: TChart: zu viele X-Achs-Labels
 
Hallo schöner Gunter,

ich benutze die zu Delphi XE5 mitgelieferte Version bzw. das aktuelle (so hoffe ich doch) Update.

Sie heisst: TeeChart Lite 2014 for RAD XE5 Update 2.

Der Style ist auf "Point Value" eingestellt. Bei Marks passiert das gleiche, allerdings mit der laufenden Nummer der Punkte. Optimal gefiele mir meine Variante ohne die Überlappungen ;-)

Wie sieht es mit dem Löschen der Label Texte der Serie vor dem hinzufügen zum Chart aus?
Bei mir gibt es genau dann die Überlappung, wenn die zusätzlichen Serien der Pfeile eingetragen werden.

Kann ich nicht irgendwie unterbinden, das eine Serie Labels in die X-Achse eintragen will?

Der schöne Günther 5. Feb 2015 10:20

AW: TChart: zu viele X-Achs-Labels
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von killamac (Beitrag 1288861)
Kann ich nicht irgendwie unterbinden, das eine Serie Labels in die X-Achse eintragen will?

Eine komfortable Möglichkeit ohne Code sehe ich keine. Du kannst aber, wie du selbst schon gesagt hast, dein OnGetAxisLabel-Event nehmen und sagen "Series2 soll nichts auf BottomAxis eintragen!"

Delphi-Quellcode:
procedure TForm7.Chart1GetAxisLabel(
   Sender: TChartAxis;
   Series: TChartSeries;
   ValueIndex: Integer;
   var LabelText: string
);
begin
   if (Sender = Chart1.BottomAxis) and (Series = Series2) then
      LabelText := EmptyStr;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz