Chart: Wie Säulendiagram auf Balkendiagramm umstellen?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Epcop
Beiträge: 140
Registriert: Di 29. Mai 2012, 09:36

Chart: Wie Säulendiagram auf Balkendiagramm umstellen?

Beitrag von Epcop »

Hallo,

wie kann ich beim Chart, das Säulendiagramm auf Balkendiagramm umstellen?

Beim Datenreihen hinzufügen, ist beides zusammengefasst "Säulen/Balkendiagramm". Ich vermute, ich brauche nur irgendwo einen haken setzen, damit das Diagramm "gespiegelt" wird bzw. x und y vertauscht. Die Balken also nicht von unten, sondern von Links kommen. Die Beschriftung zu vertauschen habe ich gefunden, aber nicht die Balken.

Alternativ, falls das nicht gehen sollte:
Wie kann ich den unteren Text drehen?

LG

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

Re: Chart: Wie Säulendiagram auf Balkendiagramm umstellen?

Beitrag von wp_xyz »

Dazu gibt es ein Tutorial: https://wiki.lazarus.freepascal.org/TAC ... _BarSeries. Punkt 5 behandelt die horizontalen Balken.

Die Grundidee ist, dass jede Series Eigenschaften AxisIndexX und AxisIndexY für den Index der Achse enthält, die den x/y Werten in der Series zugeordnet sind. Die Indices sieht man in der Baumansicht über dem Objektinspektor (unter dem Knoten AxisList). Im normalen Fall (vertikale Säulen) ist AxisIndexX der Index der horizontalen Achse (1) und AxisIndexY der der vertikalen Achse (0). Im gedrehten Fall (horizontale Balken) werden die beiden Indices einfach ausgetauscht.

Man muss sich allerdings auch noch um die Achsenbeschriftung kümmern und muss Axis.Title.Caption der beiden Achsen vertauschen. Ein Problem machen wahrscheinlich die Tick-Beschriftungen, wenn die gleich beim Einfügen der Datenwerte mit in die ListSource der Daten eingegeben werden (weil die zugehörigen y-Werte im gedrehten Fall nicht passen). Besser ist es, für die Tickbeschriftungen eine eigene ListSource zu verwenden, und dort die Beschriftungen einzutragen; als x-/y-Werte gibt man jeweils den x-Wert der zugehörigen Datenpunkte an; denselben Wert für x und y verwenden, sonst findet die gedrehte Series den Ort nicht, an dem der Text geschrieben werden soll. Diese ListSource muss man der Eigenschaft Marks.Source der entsprechenden Achse zuweisen, für die sie gelten soll (also zu BottomAxis.Marks.Source für die vertikalen, und zu LeftAxis.Marks.Source für die horizontalen Balken). Außerdem muss Marks.Style auf smsLabel gesetzt werden, damit der Beschriftungswert aus der Source genommen wird (nicht der Datenwert)

Im beigefügten Beispiel habe ich das durchgespielt, es kann hier zwischen vertikaler und horizontaler Darstellung interaktiv umgeschaltet werden.
Dateianhänge
bar_colum.zip
(2.63 KiB) 34-mal heruntergeladen

Epcop
Beiträge: 140
Registriert: Di 29. Mai 2012, 09:36

Re: Chart: Wie Säulendiagram auf Balkendiagramm umstellen?

Beitrag von Epcop »

Danke für die Antwort. Mit deiner Hilfe habe ich es geschafft.

Immer wieder, wenn ich die Forensuche bemühe, gibst du oft Hilfestellungen. Danke dir auch dafür und für deinen Einsatz!



Habe etwas tüfteln müssen mit dem Diagramm, aber mit deinem Beispiel habe ich es hinbekommen. Ganz schön tricky mit den Diagrammen. Bin richtig froh, dass ich nur ein ganz einfaches Diagramm brauche.

Antworten