Wenigsten hilft Google ein wenig mit übersetzen.Wenn du programmieren willst, musst du wenigstens soviel Englisch können, um eine Dokumentation lesen zu können. Es gibt nicht alles auf Deutsch.
TChart MaxWert
-
Mathias
- Beiträge: 7093
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: TChart MaxWert
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: TChart MaxWert
Vielen Dank für das Beispiel!
Es läuft so wie gewünscht. Neben der Lösung meines aktuellen Problems hilft es mir auch sehr dabei mehr von TChart zu verstehen.
Das wäre nicht das Problem aber vor ca. einem halben Jahr war mir "Lazarus" noch unbekannt und so fällt es oft schwer englische Fachbegriffe zu dieser Programmiersprache zu interpretieren.
So langsam wird das aber auch besser.
Die automatischen Übersetzer liefern oft kuriose Ergebnisse wenn es um Fachbegriffe geht....
Es läuft so wie gewünscht. Neben der Lösung meines aktuellen Problems hilft es mir auch sehr dabei mehr von TChart zu verstehen.
Ich dachte, die Deutschen müssten dies in der Grundschule lernen.
Ich bin Bj. 54 und habe auch ( vor wieviel Jahren? ) Englischunterricht in der Schule gehabt obwohl das damals gar nicht selbstverständlich war. Als Pflichtfach gab es, in der Grundschule, Russisch.Wenn du programmieren willst, musst du wenigstens soviel Englisch können, um eine Dokumentation lesen zu können. Es gibt nicht alles auf Deutsch.
Das wäre nicht das Problem aber vor ca. einem halben Jahr war mir "Lazarus" noch unbekannt und so fällt es oft schwer englische Fachbegriffe zu dieser Programmiersprache zu interpretieren.
So langsam wird das aber auch besser.
Die automatischen Übersetzer liefern oft kuriose Ergebnisse wenn es um Fachbegriffe geht....
- photor
- Beiträge: 533
- Registriert: Mo 24. Jan 2011, 21:38
- OS, Lazarus, FPC: Arch Linux: L 3.2 (Gtk2) FPC 3.2.2
- CPU-Target: 64Bit
Re: TChart MaxWert
Hallo wp_xyz,wp_xyz hat geschrieben:Hey Photor, da schreibt man 10 Tutorials über TAChart, und es ist den Leuten immer noch nicht rechtphotor hat geschrieben:Und ich vermisse ein gutes Tutorial zu TChart. Die Artikel im Wiki habe ich durch; die Grundzüge werden ja erklärt, aber für das nette Drum-Rum fühle mich trotzdem ein wenig allein gelassen![]()
![]()
Im Ernst, die Anwendungen sind so vielseitig, da kann man nicht für jeden spezifischen Fall ein Tutorial schreiben. Die Grundlagen für die mehrfachen y-Achsen, die Johannes verwendet, gibt es als Tutorial. Die schraffiert hinterlegten Flächen sind als Area-Series realisiert (gab es dazu nicht eine Frage hier?), man könnte auch ChartStyles nehmen, wofür es wieder ein Tutorial gibt. Generell gilt: Sich die Grundlagen erarbeiten und dann Hirn einschalten. Und wenn's nicht klappt hier fragen.
Sorry, sooo war das nicht gemeint!
Ich kenne die Tutorials (glaube ich). Ich kenne auch den Wiki-Artikel, in dem all die schönen Optionen erwähnt werden. Und trotzdem stehe ich manchmal da, will was darstellen und weiß trotzdem nicht wie und wo ich dafür nachschauen soll. Also wird viel probiert - und fast genausoviel wieder verworfen (hoher Frustfaktor
Wahrscheinlich könnte man ein ganzes Buch zur Verwendung von TChart schreiben - bei den Möglichkeiten. Aber- vielleicht gibt es das schon. Und danach habe ich halt gefragt.
So long. Schönes Wochenende,
Photor
PS: nochmal meinen ausdrücklichen Dank an die, die die ganzen bestehenden Tutorials geschrieben habe. Ohne die wäre ich längst nicht so weit.
Re: TChart MaxWert
Kapibara, ein User aus dem englischen Forum, hat mal diese Zusammenstellung fürs wiki geschrieben, die dem "Buch" wohl am nächsten kommt: http://wiki.lazarus.freepascal.org/TAChart_User_Guide. Aber wenn man nicht weiß, wie man anfangen soll, hilft das auch nicht viel. Es gilt nur die alte Leier: Üben, üben, üben. Mit einfachen Charts anfangen, und schrittweise mehr dazubauen. Bei mir war das nicht anders.photor hat geschrieben:Ich suche wohl eher was wie eine Zusammenstellung, wie sich was am besten realisieren lässt (ein Meta-Tutorial sozusagen).
Wahrscheinlich könnte man ein ganzes Buch zur Verwendung von TChart schreiben - bei den Möglichkeiten. Aber- vielleicht gibt es das schon.
-
Mathias
- Beiträge: 7093
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: TChart MaxWert
Kennt jemand eine komplexere Komponente als TChart ?
Mit dem Buch könnten ihr recht habe, so eines würde man locker füllen,
Mit dem Buch könnten ihr recht habe, so eines würde man locker füllen,
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: TChart MaxWert
Jetzt muss ich noch eine Frage stellen.
Um die Ein-Ausströmkanäle darzustellen wollte ich "ZeroLevel" nutzen.
Dabei sind "EK" die roten Bereiche und "AK" der blaue Bereich. "steg" ist die Variable für die "Stegbreite".
Meine X-Achse geht von 0 - 360.
Das Ergebnis sieht, anders als gewollt, so aus: Eigentlich sollte zwischen den roten und dem blauen schraffiertem Bereich eine Lücke mit der "Stegbreite" entstehen.
Veränderungen der Daten ergeben irgendwie auch keinen Sinn für mich.
Was mache ich da falsch oder kann ich das so gar nicht verwenden ?
Um die Ein-Ausströmkanäle darzustellen wollte ich "ZeroLevel" nutzen.
Code: Alles auswählen
ak := 0.2;
steg := 0.1;
ek := 0.1;
If CbKanal.checked then begin
Chart1SeriesEKV.ZeroLevel:= ak/2 + steg ;
Chart1SeriesEKV.AddXY(0,ek);
Chart1SeriesEKV.AddXY(360,ek);
Chart1SeriesAK.ZeroLevel := - (ak / 2);
Chart1SeriesAK.AddXY(0,ak / 2);
Chart1SeriesAK.AddXY(360,ak / 2);
Chart1SeriesEKH.ZeroLevel:= - ak/2 - steg;
Chart1SeriesEKH.AddXY(0,-ek);
Chart1SeriesEKH.AddXY(360,-ek);
end else begin
Chart1SeriesEKV.ListSource.Clear;
Chart1SeriesAK.ListSource.Clear;
Chart1SeriesEKH.ListSource.Clear;
end;
end; Dabei sind "EK" die roten Bereiche und "AK" der blaue Bereich. "steg" ist die Variable für die "Stegbreite".
Meine X-Achse geht von 0 - 360.
Das Ergebnis sieht, anders als gewollt, so aus: Eigentlich sollte zwischen den roten und dem blauen schraffiertem Bereich eine Lücke mit der "Stegbreite" entstehen.
Veränderungen der Daten ergeben irgendwie auch keinen Sinn für mich.
Was mache ich da falsch oder kann ich das so gar nicht verwenden ?
Re: TChart MaxWert
Überleg mal:
- der blaue Bereich geht von -ak/2 bis +ak/2, also von -0.1 bis +0.1, weil ak=0.2
- der obere rote Bereich geht von ak/2+steg = 0.2/2 + 0.1 = 0.2 bis ek = 0.1 --> das heißt er schließt nahtlos an den blauen Bereich an. Analoges gilt für den unteren blauen Bereich.
In deinem Fall zeigt der obere Balken vom ZeroLevel nach unten und erreicht gerade den blauen Balken. Wenn du ek etwas größer machst, genauer zwischen 0.1 und 0.2, sieht man einen Leerraum, der aber nicht dem von dir beabsichtigten Steg entspricht, weil ja der Balken nach unten verläuft. Erst wenn ek > 0.2 ist (also > ak/2 + steg), zeigt der Balken nach oben und das gap entspricht dem steg-Wert.
- der blaue Bereich geht von -ak/2 bis +ak/2, also von -0.1 bis +0.1, weil ak=0.2
- der obere rote Bereich geht von ak/2+steg = 0.2/2 + 0.1 = 0.2 bis ek = 0.1 --> das heißt er schließt nahtlos an den blauen Bereich an. Analoges gilt für den unteren blauen Bereich.
In deinem Fall zeigt der obere Balken vom ZeroLevel nach unten und erreicht gerade den blauen Balken. Wenn du ek etwas größer machst, genauer zwischen 0.1 und 0.2, sieht man einen Leerraum, der aber nicht dem von dir beabsichtigten Steg entspricht, weil ja der Balken nach unten verläuft. Erst wenn ek > 0.2 ist (also > ak/2 + steg), zeigt der Balken nach oben und das gap entspricht dem steg-Wert.
Re: TChart MaxWert
Vielen Dank für die schnelle Antwort.
Ich verwende AreaSeries und bin davon ausgegangen, dass "ZeroLevel" eine Verschiebung des Nullpunktes bewirkt.
Wenn ich den Nullpunkt verschiebe sollte doch die Darstellung passen.
Ich habe immer noch ein Verständnisproblem. Warum "zeigt der Balken nach unten" ?
Tut mir leid aber ich stehe da irgendwie auf der Leitung.
Ich verwende AreaSeries und bin davon ausgegangen, dass "ZeroLevel" eine Verschiebung des Nullpunktes bewirkt.
Wenn ich den Nullpunkt verschiebe sollte doch die Darstellung passen.
Ich habe immer noch ein Verständnisproblem. Warum "zeigt der Balken nach unten" ?
Tut mir leid aber ich stehe da irgendwie auf der Leitung.
Zuletzt geändert von Johannes am Mo 20. Jun 2016, 22:34, insgesamt 1-mal geändert.
Re: TChart MaxWert
ZeroLevel gibt es nur bei TBarSeries.
Bei einem Standard-Barchart ist ZeroLevel 0, das heißt die Balken beginnen bei 0. Wenn der Datenwert positiv ist, "zeigt" der Balken in meiner Sprache nach oben, wenn er negativ ist, nach unten. Das heißt, der Balken "beginnt" beim Zerolevel und "ended" beim Datenpunkt.
Bei dir "beginnt" der obere blaue Balken bei ak/2+steg und "endet" bei ek. Mit den von dir gewählten Zahlenwerten ist ek < ak/2 + steg, d.h. der Balken "zeigt" nach unten
Bei einem Standard-Barchart ist ZeroLevel 0, das heißt die Balken beginnen bei 0. Wenn der Datenwert positiv ist, "zeigt" der Balken in meiner Sprache nach oben, wenn er negativ ist, nach unten. Das heißt, der Balken "beginnt" beim Zerolevel und "ended" beim Datenpunkt.
Bei dir "beginnt" der obere blaue Balken bei ak/2+steg und "endet" bei ek. Mit den von dir gewählten Zahlenwerten ist ek < ak/2 + steg, d.h. der Balken "zeigt" nach unten
Re: TChart MaxWert
Danke.
Also kann ich meine Idee vergessen.
Ich werde nach einer anderen Möglichkeit suchen.
Also kann ich meine Idee vergessen.
Ich werde nach einer anderen Möglichkeit suchen.
Re: TChart MaxWert
Welche Idee denn? Anscheinend habe ich mal wieder nichts verstanden...Johannes hat geschrieben:Also kann ich meine Idee vergessen.
Re: TChart MaxWert
Ich meinte damit mein Vorhaben diese Kanäle mittels AreaSeries und Zerolevel richtig darzustellen.
Wenn ZeroLevel nur bei BarSeries anwendbar ist brauche ich einen anderen Weg.
Wenn ZeroLevel nur bei BarSeries anwendbar ist brauche ich einen anderen Weg.
Re: TChart MaxWert
Ich habe gerade geguckt: neben TBarSeries hat auch TAreaSeries einen ZeroLevel, es ist da die Baislinie, bis zu dem die Fläche gefüllt wird.Johannes hat geschrieben:Ich meinte damit mein Vorhaben diese Kanäle mittels AreaSeries und Zerolevel richtig darzustellen.
Wenn ZeroLevel nur bei BarSeries anwendbar ist brauche ich einen anderen Weg.
[EDIT]
Ich verstehe jetzt, ich war der Meinung, du würdest eine BarSeries verwenden
Re: TChart MaxWert
Nun habe ich einige Zeit investiert aber irgendwie bin ich zu blöd das zu verstehen.
Mit diesem Code:
gibt es z.B. dieses Ergebnis:
Wenn ZeroLevel die Basis sein soll warum gibt es dann keine Ansicht mehr vom y-Wert ?
Die roten Kurven bitte ignorieren..
Mit diesem Code:
Code: Alles auswählen
ak := 0.2;
steg := 0.001;
ek := 0.2;
If CbKanal.checked then begin
Chart1SeriesEKV.ZeroLevel:= ak + steg;
Chart1SeriesEKV.AddXY(0,ek);
Chart1SeriesEKV.AddXY(360,ek); Die roten Kurven bitte ignorieren..
Re: TChart MaxWert
Nochmals: Der gefüllte Bereich der AreaSeries erstreckt sich in y-Richtung ausgehend vom ZeroLevel bis zum Funktionswert. In dem neuen Beispiel ist der ZeroLevel ak+step = 0.201, der Funktionswert (das was du der Series per AddXY zugewiesen hast) ist konstant bei ek = 0.2. Das heißt, die ausgefüllte AreaSeries erstreckt sich nur zwischen 0.2 und 0.201 - das ist die waagrechte Linie in dem Screenshot.
Schau dir mal die beigefügte Demo an; hier kannst du mit dem rechten Scrollbar den Zerolevel verschieben und siehst was mit der AreaSeries passiert. Vielleicht wird's dadurch klarer.
Schau dir mal die beigefügte Demo an; hier kannst du mit dem rechten Scrollbar den Zerolevel verschieben und siehst was mit der AreaSeries passiert. Vielleicht wird's dadurch klarer.
- Dateianhänge
-
AreaSeries_ZeroLevel.zip- (2.21 KiB) 115-mal heruntergeladen