TChart MaxWert

Für Fragen von Einsteigern und Programmieranfängern...
Mathias
Beiträge: 6910
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TChart MaxWert

Beitrag von Mathias »

Wenn du programmieren willst, musst du wenigstens soviel Englisch können, um eine Dokumentation lesen zu können. Es gibt nicht alles auf Deutsch.
Wenigsten hilft Google ein wenig mit übersetzen. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: TChart MaxWert

Beitrag von Johannes »

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.
Ich dachte, die Deutschen müssten dies in der Grundschule lernen.
Wenn du programmieren willst, musst du wenigstens soviel Englisch können, um eine Dokumentation lesen zu können. Es gibt nicht alles auf Deutsch.
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. :mrgreen:
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....

Benutzeravatar
photor
Beiträge: 512
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

Beitrag von photor »

wp_xyz hat geschrieben:
photor 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 :?
Hey Photor, da schreibt man 10 Tutorials über TAChart, und es ist den Leuten immer noch nicht recht :(

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.
Hallo wp_xyz,

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 :( ). Wie Du oben schon schreibst: es wird irgendwo das passende Tutorial bzw Artikel geben. 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. 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.

wp_xyz
Beiträge: 5142
Registriert: Fr 8. Apr 2011, 09:01

Re: TChart MaxWert

Beitrag von wp_xyz »

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.
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.

Mathias
Beiträge: 6910
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: TChart MaxWert

Beitrag von Mathias »

Kennt jemand eine komplexere Komponente als TChart ?

Mit dem Buch könnten ihr recht habe, so eines würde man locker füllen, :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: TChart MaxWert

Beitrag von Johannes »

Jetzt muss ich noch eine Frage stellen.

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:
Steg.JPG
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 ?

wp_xyz
Beiträge: 5142
Registriert: Fr 8. Apr 2011, 09:01

Re: TChart MaxWert

Beitrag von wp_xyz »

Ü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.

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: TChart MaxWert

Beitrag von Johannes »

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.
Zuletzt geändert von Johannes am Mo 20. Jun 2016, 22:34, insgesamt 1-mal geändert.

wp_xyz
Beiträge: 5142
Registriert: Fr 8. Apr 2011, 09:01

Re: TChart MaxWert

Beitrag von wp_xyz »

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

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: TChart MaxWert

Beitrag von Johannes »

Danke.
Also kann ich meine Idee vergessen.
Ich werde nach einer anderen Möglichkeit suchen.

wp_xyz
Beiträge: 5142
Registriert: Fr 8. Apr 2011, 09:01

Re: TChart MaxWert

Beitrag von wp_xyz »

Johannes hat geschrieben:Also kann ich meine Idee vergessen.
Welche Idee denn? Anscheinend habe ich mal wieder nichts verstanden...

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: TChart MaxWert

Beitrag von Johannes »

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.

wp_xyz
Beiträge: 5142
Registriert: Fr 8. Apr 2011, 09:01

Re: TChart MaxWert

Beitrag von wp_xyz »

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.
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.

[EDIT]
Ich verstehe jetzt, ich war der Meinung, du würdest eine BarSeries verwenden

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: TChart MaxWert

Beitrag von Johannes »

Nun habe ich einige Zeit investiert aber irgendwie bin ich zu blöd das zu verstehen.
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);          
gibt es z.B. dieses Ergebnis:
Steg1.JPG
Wenn ZeroLevel die Basis sein soll warum gibt es dann keine Ansicht mehr vom y-Wert ?

Die roten Kurven bitte ignorieren..

wp_xyz
Beiträge: 5142
Registriert: Fr 8. Apr 2011, 09:01

Re: TChart MaxWert

Beitrag von wp_xyz »

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.
Dateianhänge
AreaSeries_ZeroLevel.zip
(2.21 KiB) 66-mal heruntergeladen

Antworten