Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Manipulation der TChart Achsenbeschriftung (https://www.delphipraxis.net/204111-manipulation-der-tchart-achsenbeschriftung.html)

hossi 24. Apr 2020 12:43

Manipulation der TChart Achsenbeschriftung
 
Hallo, ich habe folgendes Problem:

Ich bekomme aus einer DLL eine Reihe von Punkten, welche in einem TChart gezeichnet werden sollen. Diese Punkte befinden sich alle in einem Bereich (x und y) von [-1, 1]. Diese werden als line series geadded und gezeichnet. So weit, so gut.
Als Achsenbeschriftung braeuchte ich jedoch andere Werte. Hierfuer findet eine Kalibrierung statt (z.B. 0.1 units entsprechen 10 mm). Ist es nun moeglich die Achse dahingehend anzupassen, dass ich weiterhin die unkalibrierten Werte zum Chart hinzufuege, die Achse jedoch mit einer eigentlich nicht zu den Werten passenden Beschriftung zu versehen?
Eine Umrechnung der Werte in mm und hinzufuegen dieser kommt leider nicht in frage, da es grosse Datensaetze sind, die teilweise sehr schnell neu gezeichnet werden muessen.

LG hossi

Der schöne Günther 24. Apr 2020 13:17

AW: Manipulation der TChart Achsenbeschriftung
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo-

In dem Fall bei so einem festen Bereich würde ich die Achsen-Einteilung komplett selbst malen:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
   xData, yData: TArray<Double>;
   index: Integer;
   chartAxis: TChartAxis;
begin
   xData := [0.0, 1.0, 2.0, 3.0, 4.0, 5.0];
   yData := [0.25,   0.36, 0.0, 0.78, 1.0];

   chartAxis := Chart1.Axes.Left;
   chartAxis.Automatic := False;
   chartAxis.SetMinMax(-1.0, +1.0);
   chartAxis.Items.Add(-1.0, '- 10 mm');
   chartAxis.Items.Add(-0.5, '-  5 mm');
   chartAxis.Items.Add(0,   '  0 mm');
   chartAxis.Items.Add(+0.5, '+  5 mm');
   chartAxis.Items.Add(+1.0, '+ 10 mm');

   for index := Low(xData) to High(xData) do
      Series1.AddXY(xData[index], yData[index]);
end;
Sieht dann so aus:
Anhang 52380

hossi 24. Apr 2020 14:28

AW: Manipulation der TChart Achsenbeschriftung
 
Vielen Dank fuer die schnelle Antwort. Leider muss das ganze aber dynamisch sein, da die resultierende figur immer in maximaler groesse dargestellt werden soll.
Bin aber gerade auf
Code:
TCustomAxisPanel.OnGetAxisLabel
gestossen, was mein Problem 100% loest.
Danke trotzdem.

LG


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 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