TChart, Zahlenbrei
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
TChart, Zahlenbrei
Kann man die Vertikale Gitternetzlinie anders unterteilen, so das es unten keinen Zahlenbrei gibt ?
Oder das es zB. nur jede zweite Zahl anzeigt ?
Oder das es zB. nur jede zweite Zahl anzeigt ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: TChart, Zahlenbrei
Wie hast das erzeugt? Kommt eigentlich so nicht vor, auch wenn eine Series sehr viele Datenpunkte enthält.
Die eigentlichen Labels kann ich nicht lesen - ok, wenn diese sehr lang sin, kann es in einigen ungünstigen Fällen zu Überlappungen kommen. In diesem Fall solltest du die Werte von Chart1.BottomAxis.Intervals.MaxLength und .MinLength vergrößern. z.B. MinLength (minimal erlaubter Abstand von zwei aufeinanderfolgenden Ticks in Pixeln) 40, MaxLength 80. falls es zu Labels mit vielen Dezimalstellen kommt, solltest du auch .Intervals.Tolerance moderat erhöhen (z.B. 2)
Die eigentlichen Labels kann ich nicht lesen - ok, wenn diese sehr lang sin, kann es in einigen ungünstigen Fällen zu Überlappungen kommen. In diesem Fall solltest du die Werte von Chart1.BottomAxis.Intervals.MaxLength und .MinLength vergrößern. z.B. MinLength (minimal erlaubter Abstand von zwei aufeinanderfolgenden Ticks in Pixeln) 40, MaxLength 80. falls es zu Labels mit vielen Dezimalstellen kommt, solltest du auch .Intervals.Tolerance moderat erhöhen (z.B. 2)
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: TChart, Zahlenbrei
Wie hast das erzeugt? Kommt eigentlich so nicht vor, auch wenn eine Series sehr viele Datenpunkte enthält.
Schon mit diesem Minimal-Code kriege ich das hin.
Im Object-Inspektor, habe ich ausser Align nichts verstellt.
Code: Alles auswählen
type
TForm1 = class(TForm)
Chart1: TChart;
Chart1LineSeries1: TLineSeries;
....
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i := 0 to 100000 do begin
Chart1LineSeries1.AddY(i);
end;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: TChart, Zahlenbrei
Das ist zu wenig Information, das Problem zu reproduzieren - bei mir funktionierts (siehe Screenshot) -, denn wie die Labels positioniert werden, das hängt auch davon ab, wie groß das Diagramm ist. Auch bei mir kommen sich die langen Labels zu nahe, wenn ich das Formular dann etwas verbreitere. Das ist genau die Situation, die ich im vorigen Post beschrieben hatte, also durch die Vergrößerung von Intervals.MinWidth oder .MaxWidth verbessert werden sollte.
- Dateianhänge
-
- chartlabels.png (3.85 KiB) 1154 mal betrachtet
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: TChart, Zahlenbrei
Im Anhang mein Programm mit dem Fehler.
Ich habe es mit WinXP und Linux Mint probiert.
Ich habe es mit WinXP und Linux Mint probiert.
- Dateianhänge
-
- chart_test.zip
- (124.64 KiB) 45-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: TChart, Zahlenbrei
Warum machst du nicht, was ich ganz oben schon geschrieben habe? Einfach z.B. Chart1.BottomAxis.Intervals.MaxLength auf 80 setzen und schon ist alles in Ordnung. Und wenn's immer noch nicht geht, dann mach's nochmals etwas größer. Und/oder vergrößere auch MinLength.
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: TChart, Zahlenbrei
Mit diesen beiden Parametern sieht es bei mir recht gut aus.
Nach meiner Meinung, ist der Standard-Wert recht knapp berechnet.
Im Anhang ein Screenshot, von einem einfachen TChart, ohne das irgend was verstellt oder rein geschrieben wurde.
Code: Alles auswählen
Chart1.BottomAxis.Intervals.MaxLength:=100;
Chart1.BottomAxis.Intervals.MinLength:=20;
Nach meiner Meinung, ist der Standard-Wert recht knapp berechnet.
Im Anhang ein Screenshot, von einem einfachen TChart, ohne das irgend was verstellt oder rein geschrieben wurde.
- Dateianhänge
-
- Bildschirmfoto vom 2017-01-18 17-34-45.png.zip
- (19.53 KiB) 42-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: TChart, Zahlenbrei
Naja... Was der eine Chart zu klein und die Labels zu lang waren, ist jetzt der Chart zu breit. Bei "normalen" Charts mit "normaler" Achsenbeschriftung und "normaler" Größe - was das "normal" auch immer bedeuten mag - hatte ich noch nie Probleme. Wobei: die standardmäßigen 10 bei MinLength erscheinen mir auch etwas knapp.
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: TChart, Zahlenbrei
Was mich noch an TChart fasziniert, ist die Geschwindigkeit, mit welcher das Diagramm dargestellt wird.
Immerhin, zeige ich 100'000 Messdaten an, und diese werden 2000x pro Sek aktualisiert.
Immerhin, zeige ich 100'000 Messdaten an, und diese werden 2000x pro Sek aktualisiert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot