Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   TChart Darstellung von Labels in X-Achse (https://www.delphipraxis.net/181906-tchart-darstellung-von-labels-x-achse.html)

Friday 16. Sep 2014 16:29

TChart Darstellung von Labels in X-Achse
 
Hallo,
ich habe ein Balkendiagramm bei dem ich in der X-Achse mittels der Labels Eigenschaft
Delphi-Quellcode:
chart1.series[i].Add(Array, Label);
für jeden Balken einen eigenen Namen vergebe.
Nun ist es aber so, dass wenn zuviele Balken in einem Diagramm sind, bzw. die Labels zu lang, dann werden einige einfach nicht dargestellt.
Umgehen kann man das mit
Delphi-Quellcode:
TChart.Axes.Bottom.LabelsAngle := 90;
Ist allerdings nicht sehr leserlich, deshalb würde ich die Beschriftung gerne nur vertikal machen, wenn sonst Labels nicht dargestellt werden.

Die eigentliche Frage also: Wie kann ich zur Laufzeit erfragen ob einzelne Labels versteckt werden?
Oder bleibt nur die Möglichkeit das selbst zu berechnen und dann "vermuten" ?

Der schöne Günther 16. Sep 2014 16:52

AW: TChart Darstellung von Labels in X-Achse
 
Liste der Anhänge anzeigen (Anzahl: 2)
Gute Frage. Ich wüsste auch nicht wie. Hast du ein laufendes Abo und kannst die Frage direkt im Steema-Forum stellen? Wenn nicht kann ich das auch tun :-)

Ich hätte nur zwei, drei dumme Ideen:
  • Einmal könnte man wenigstens noch etwas herausholen in dem man die Labels auf zwei Zeilen verteilt (siehe Bild 1). Multi-Line oder Alternate oder so hieß die Einstellung bei der Achse.
  • Weiterhin kann man auch mit Gewalt alle Label anzeigen aber damit wird man wohl auch nicht glücklich (siehe Bild 2): Min-Separation auf 0% und Style auf Mark
  • Ansonsten würde ich vielleicht die Beschriftung unten weglassen, die Balken alle unterschiedlich färben und eine Legende rechts daneben packen
  • Oder beim Überfahren mit der Maus mit einem Mark die Beschriftung einblenden

Friday 17. Sep 2014 07:47

AW: TChart Darstellung von Labels in X-Achse
 
Hallo Günther,
das sind schonmal wertvolle Tipps. Mir war bis dato gar nicht klar dass die Legende auch die Werte anzeigen kann :roll:
Mit Style auf Mark auf Seperation auf 0% wird auch alles angezeigt. Und bei einem Winkel von 45° gäbe es auch keine Überschneidungen, bloss berechnet TChart die notwendigen Abstände nicht mehr richtig. Die Labels fangen unten in einem nicht sichtbaren Bereich an und überlappen dann in die X-Achsen-Beschriftung und sogar ins Diagramm hinein. Mit TChart.Panel.Margin kann man den unteren Bereich zwar manuell vergrößern, dass die Labels im sichtbaren Bereich anfangen, dennoch überblenden sie den X-Achsen-Titel. (Und die Legende überblenden sie auch wenn diese unten angeordnet ist, wie in meinem Fall)

Nein bei Steema habe ich kein laufendes Abo. Wenn du dort direkt die Frage stellen könntest wär das natürlich toll.

Dejan Vu 17. Sep 2014 08:48

AW: TChart Darstellung von Labels in X-Achse
 
Die Frage lautet doch auch: Wenn so viele Balken mit Beschriftungen sichtbar sind, ist da nicht etwas faul bezüglich der Übersichtlichkeit?

Nicht umsonst fässt ist die 80/20 Regel verbreitet (Pareto) oder auch 'Top 10'. Im Prinzip ist es so, das man nur die wichtigsten Elemente anzeigt und den Rest unter 'Sonstiges' zusammenfässt. Die 'Sonstigen' kann man auch in einem zweiten Chart noch einmal detailliert anzeigen.

Das geht natürlich nicht immer, z.B. wenn man die Umsätze aller 78 Warengruppen anzeigen will und die halbwegs gleichverteilt sind. Auf der anderen Seite: Wer wird eigentlich schlau aus einem Chart mit 78 Balken? Hier gilt es, zu gruppieren (stacked bars z.B.) oder Gruppensummen zu zeigen und dann für die einzelnen Gruppen jeweils einzelne Charts.

Ich habe z.B. bei einer Fehleranalyse im Prinzip das gleiche Problem. Ich überlasse es hier aber dem Kunden, einzelne Fehler auszublenden und nur die Top X (X frei wählbar) anzuzeigen, wobei der Rest dann unter 'Other' fällt.

Das geht natürlich nicht immer: Bei einer ABC-Analyse von Fehlerhäufigketen habe ich jedoch ein ähnliches Problem. Dort ist jeder Balken waagerecht angeordnet, und seine Fehlerbeschreibung steht links davon. Nur diese Beschreibung ist ein halber Roman à la 'Sensorschlonztrommel A/B12-XY 15 verwurbelt nicht mit Verwutzung 42,13. Der Chybichevabstand beträgt nicht 0.56 frmzl.'. Die Analyse ist schon auf die Top 8 beschränkt bzw. bis 80% erreicht ist, was 3-6 Fehlern entspricht. Trotzdem fehlen manchmal die mehrzeiligen Beschriftungen. Wenn ich die Achse dagegen verschiebe, passt alles rauf.

Abhilfe (ohne Scheiß): Den Chart dehnen, bis alles raufpasst. Manuell. Der Anwender ist ja nicht doof.

Wenn das bei Dir aber nicht der Fall ist, und Du einfach zu viel Informationen anzeigst, würde ich hier ansetzen: Das ist einfach nicht übersichtlich und verständlich.


PS: Das Steema-Forum ist nicht alles. Es gibt auch noch Stackoverflow.

Der schöne Günther 18. Sep 2014 10:02

AW: TChart Darstellung von Labels in X-Achse
 
Um nochmal auf die konkrete Frage zurückzukommen: Die Eigenschaft
Delphi-Quellcode:
Items.Count
einer Achse sagt dir, wieviele Label sichtbar sind. Das war zu einfach :roll:

Yeray hat nochmal ein schönes Beispiel dazu gepostet.

Dejan Vu 18. Sep 2014 10:11

AW: TChart Darstellung von Labels in X-Achse
 
:shock: Das ist zu einfach. Das *kann* einfach nicht die Lösung sein. :thumb:

Wenn ich mir überlege, wie lange ich an meiner ABC-Geschichte rumgedoktort habe und wie sehr mich das genervt hat. :wall:

DeddyH 18. Sep 2014 10:16

AW: TChart Darstellung von Labels in X-Achse
 
*Pfh* Komponentenhersteller, die mitdenken... wo bleibt denn da die Herausforderung? :roll:

Dejan Vu 18. Sep 2014 10:20

AW: TChart Darstellung von Labels in X-Achse
 
Das ist bei Steema nicht normal. Deren Komponenten ist auch vom Quelltext her ziemlich chaotisch. Da kommt man im Leben nicht drauf, das die mitdenken. Aber gut. Spanier halt. Irgendwie dann doch sehr breitbandig. Zwischen Kreisklasse und weltmeisterlich.

Friday 18. Sep 2014 15:31

AW: TChart Darstellung von Labels in X-Achse
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1272963)
Um nochmal auf die konkrete Frage zurückzukommen: Die Eigenschaft
Delphi-Quellcode:
Items.Count
einer Achse sagt dir, wieviele Label sichtbar sind. Das war zu einfach :roll:

Yeray hat nochmal ein schönes Beispiel dazu gepostet.

da hab ich wohl vor dem Posten keine ausreichende Recherche betrieben. Schande über mich :oops:

Und danke für die Antwort.

Der schöne Günther 18. Sep 2014 16:12

AW: TChart Darstellung von Labels in X-Achse
 
Naja, also ich bin auch nicht drauf gekommen und habe deshalb bei Steema nachgefragt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:16 Uhr.

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