Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Säulendiagramm (https://www.delphipraxis.net/117029-saeulendiagramm.html)

marabu 10. Jul 2008 13:17

Re: Säulendiagramm
 
Wenn du deiner Chart-Komponente mehrere Balken-Serien hinzufügst, dann musst du deren Eigenschaft MultiBar auf mbNone setzen, damit du die gewünschte Darstellung erhältst.

Im Chart-Editor wechsle von Diagramm auf Reihen und betrachte die RadioGroup "Mehrfach-Balken".

S20000 10. Jul 2008 13:38

Re: Säulendiagramm
 
Danke, der Tip war gut!

Jetzt bleibt nur noch ein Problem. Wie kann ich jetzt die "Y-Achse"
beschriften so das ich wie auf dem Bild zu sehen 3 Beschriftungen habe.
(siehe erster Beitrag)

Gruß
Sebastian

marabu 10. Jul 2008 14:19

Re: Säulendiagramm
 
Die Y-Achse ist die am linken Rand (Chart.VertAxis). Bei dir hat sie ein Increment (Steigung) von 5 und wahrscheinlich sogar eine automatische Skalierung.

Was genau willst du verändern?

S20000 10. Jul 2008 14:27

Re: Säulendiagramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich habe mal ein Bild zur Verdeutlichung eingefügt.
Oben der derzeitige Zustand, unten so wie
ich es benötige. Ich brauche im Prinzip eine
zusätzliche Achseninformation.

Gruß
Sebastian

marabu 10. Jul 2008 15:07

Re: Säulendiagramm
 
Du könntest die Achsenbeschriftung für die DepthAxis auf Text umstellen und in der Methode OnGetAxisLabel den gewünschten String übergeben.

S20000 10. Jul 2008 19:31

Re: Säulendiagramm
 
Hallo,
könntest du das noch etwas konkretisieren?

Delphi-Quellcode:
chart1.DepthAxis. ? : = ?

marabu 10. Jul 2008 20:40

Re: Säulendiagramm
 
Klar.

Du setzt DepthAxis.LabelStyle auf talText und stellst einen event handler für OnGetAxisLabel bereit:

Delphi-Quellcode:
procedure TDemoForm.DemoChartGetAxisLabel(Sender: TChartAxis;
  Series: TChartSeries; ValueIndex: Integer; var LabelText: String);
begin
  if Sender = TChartAxis(DemoChart.DepthAxis) then
    case ValueIndex of
      0: LabelText := 'Serie 1';
      1: LabelText := 'Serie 2';
      2: LabelText := 'Serie 3';
    else LabelText := '???';
    end;
end;

S20000 10. Jul 2008 21:24

Re: Säulendiagramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Vielen Dank schonmal!
Habe das jetzt wie folgt programmiert:

Delphi-Quellcode:
implementation

{$R *.dfm}

procedure TForm14.Chart1GetAxisLabel(Sender: TChartAxis; Series: TChartSeries;
  ValueIndex: Integer; var LabelText: string);
begin
  if Sender = TChartAxis(Chart1.DepthAxis) then
    case ValueIndex of
      0: LabelText := 'Serie 1';
      1: LabelText := 'Serie 2';
      2: LabelText := 'Serie 3';
    else LabelText := '???';
    end;
end;

procedure TForm14.FormCreate(Sender: TObject);
begin
chart1.DepthAxis.LabelStyle:=taltext;
chart1.Series[0].Add(10,'1',clred);
chart1.Series[1].Add(20,'2',clblue);
chart1.Series[2].Add(20,'3',clgreen);

end;
Die Ausgabe sieht dann aus wie im BIld zu sehen. Also ohne
die gewünschten Beschriftungen.
Habe ich etwas vergessen?

S20000 11. Jul 2008 07:58

Re: Säulendiagramm
 
Guten Morgen,

ok es hat jetzt funktioniert. Ich hatte vergessen die
Depth Axis auf sichtbar zu schalten.

Gruß
Sebastian

marabu 11. Jul 2008 08:00

Re: Säulendiagramm
 
Moin,

du hast die Achsenbeschriftung noch nicht sichtbar gemacht:

Delphi-Quellcode:
procedure TForm14.FormCreate(Sender: TObject);
begin
  with Chart1 do
  begin
    DepthAxis.LabelStyle := talText; // besser im Chart-Editor
    DepthAxis.Visible := True;       // besser im Chart-Editor
    Series[0].Add(10, '1', clred);
    Series[1].Add(20, '2', clblue);
    Series[2].Add(20, '3', clgreen);
  end;
end;
Bei deinem Beispiel wird deutlich, dass die kleinen Werte im Hintergrund mit der orthogonalen Darstellung schlecht sichtbar sind. Im Chart-Editor kannst du auf der 3D-Seite des Diagramms diese Eigenschaft abschalten und mit den Reglern für Drehung und Erhöhung spielen.

Wenn du mal nicht weißt, wie du eine Einstellung im Chart-Editor auch in deinem Code vornehmen kannst oder wenn dich die Intuition mal verlässt: Alle Änderungen gegenüber den Standardeinstellungen werden im Object Inspector durch BoldText hervorgehoben. Zusätzlich kannst du einen charakteristischen Zahlenwert im Chart-Editor einstellen und diesen in der Textdarstellung deiner Form suchen.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:17 Uhr.
Seite 2 von 3     12 3      

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