AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Manipulation der TChart Achsenbeschriftung

Manipulation der TChart Achsenbeschriftung

Ein Thema von hossi · begonnen am 24. Apr 2020 · letzter Beitrag vom 24. Apr 2020
Antwort Antwort
hossi

Registriert seit: 24. Apr 2020
2 Beiträge
 
#1

Manipulation der TChart Achsenbeschriftung

  Alt 24. Apr 2020, 12:43
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
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
5.866 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Manipulation der TChart Achsenbeschriftung

  Alt 24. Apr 2020, 13:17
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:
untitled.png
  Mit Zitat antworten Zitat
hossi

Registriert seit: 24. Apr 2020
2 Beiträge
 
#3

AW: Manipulation der TChart Achsenbeschriftung

  Alt 24. Apr 2020, 14:28
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
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf