Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   TChart - 3 Variabeln (https://www.delphipraxis.net/194787-tchart-3-variabeln.html)

Asura 5. Jan 2018 00:23

TChart - 3 Variabeln
 
Guten Tag,

ich besitze die vorinstallierte Version von TChart.
Ich habe drei Variabeln: Getränkenamen, Usernamen und Menge der gekauften Getränke.
Ich habe mir überlegt, dass mit dem Bubbles Diagramm darzustellen.
Y-Achse: Getränkenamen
X-Achse: Username
Größe der Bubbles: Anzahl

Nur leider kann man ja keine festen String als Wert festlegen, sondern nur double-Werte.

Wie könnte man dieses Problem angehen? Welche Optionen würden mir noch bleiben, um dies darzustellen?

hoika 5. Jan 2018 06:29

AW: TChart - 3 Variabeln
 
Hallo,
den String in Float umwandeln? (StringToFloat).

Zeig mal den Code, den du schon hast.

Der schöne Günther 5. Jan 2018 08:20

AW: TChart - 3 Variabeln
 
Ich bin jetzt kein Fachmann für Blasendiagramme, aber alle Beispiele die mir das Internet zeigt haben auch Zahlen auf der X- und Y-Achse.

Mit dem T-Chart kannst du ja trotzdem einfach z.B. bei
Delphi-Quellcode:
x=1
die Werte von
Delphi-Quellcode:
Benutzer=Günther
einmalen und dann die Achse an der Stelle halt nur mit "Günther" statt "1" beschriften.

Ein Chart hat dazu ein
Delphi-Quellcode:
OnGetAxisLabel
-Event, oder so ähnlich.

Neutral General 5. Jan 2018 08:58

AW: TChart - 3 Variabeln
 
Zitat:

Zitat von hoika (Beitrag 1390355)
Hallo,
den String in Float umwandeln? (StringToFloat).

Zeig mal den Code, den du schon hast.

Viel Erfolg bei StrToFloat('Getränkenamen') :duck:

himitsu 5. Jan 2018 12:09

AW: TChart - 3 Variabeln
 
Die Y-Achse hatte ich auch irgendwo schonmal mit Namen, aber für X war immer irgendein nummerischer Wert nötig.

Alias?
Wenn es bei TChart möglich ist, die Werte der Anzeigen zu ändern (GetText-Events gibt es doch fast überall) dann könntest du den Chart mit Zahlen aufbauen (die Namen einfach durchnummerieren) und dann für die Anzeige mit dem Namen überschreiben.

Uwe Raabe 5. Jan 2018 14:52

AW: TChart - 3 Variabeln
 
In der Series kannst du über DataSource - Manual für jeden Datenpunkt einen Text, einen Y-Wert und den Radius angeben. Für den Text könnte man nun den Usernamen nehmen, während für den Y-Wert zunächst nur ein Index für den Getränkenamen angegeben werden kann. Der Radius kann dann wieder der tatsächlichen Menge entsprechen.

Um die Texte dann auf der X-Achse darzustellen, muss in Chart - Axis - BottomAxis - Labels - Style - Style die Option Text ausgewählt werden.

Die Texte bei der Y-Achse sind etwas aufwändiger: Hier muss erst unter Chart - Axis - LeftAxis - Labels - Style - Style die Option Point Value ausgewählt werden. Dann im oberen Tab auf Items wechseln. Hier das Automatic ausschalten und für jeden Value den passenden Getränkenamen als Text eintragen.

Asura 5. Jan 2018 16:51

AW: TChart - 3 Variabeln
 
Gut ich habe mal die Einstellungen getroffen.

Delphi-Quellcode:
procedure TF_UsersStatistic.LoadUserStatistic(Query: TADOQuery);
var Bubble: TBubbleSeries;
begin

  Query.SQL.Clear;
  Query.SQL.Add('SELECT DISTINCTROW usr_users.usr_ID, usr_users.usr_Username, bev_beverages.bev_ID, bev_beverages.bev_name, Sum(odt_details.odt_Count) AS [Anzahl]');
  Query.SQL.Add('FROM bev_beverages INNER JOIN ((usr_users INNER JOIN ord_orders ON usr_users.[usr_ID] = ord_orders.[ord_usr_ID]) INNER JOIN odt_details ON ord_orders.[ord_id] = odt_details.[odt_ord_ID]) ON bev_beverages.[bev_ID] = odt_details.[odt_bev_ID]');
  Query.SQl.Add('GROUP BY usr_users.usr_ID, usr_users.usr_Username, bev_beverages.bev_ID, bev_beverages.bev_name');
  Query.Open;
  Query.First;

  Bubble := TBubbleSeries.Create(Self);
  Bubble.ParentChart := Chart;

  while Query.Eof do
    begin
      with Bubble do
        begin
          AddBubble(Query.FieldByName('usr_users.usr_ID').AsFloat, Query.FieldByName('bev_beverages.bev_ID').AsFloat, Query.FieldByName('Anzahl').AsFloat);
        end;
      Query.Next;
    end;

end;
Ich wollte mich erstmal an den Versuch wagen mit den Zahlen zu arbeiten, um dann in nachhinein die Einstellungen zu treffen.
Leider stellt er gar nichts dar und ich wundere mich, dass hier nicht mal ein Bubble angezeigt wird. Jemand vllt eine Idee, weshalb da gar nichts angezeigt wird?

hoika 5. Jan 2018 22:05

AW: TChart - 3 Variabeln
 
Hallo,
baue dir erst mal ein Beispiel-Projekt ohne DB-Anbindung
mit fest definierten Werten.

Wenn das klappt, vergleiche es mit Deiner Version (deinen Daten).

himitsu 5. Jan 2018 22:28

AW: TChart - 3 Variabeln
 
Zitat:

Zitat von hoika (Beitrag 1390387)
baue dir erst mal ein Beispiel-Projekt ohne DB-Anbindung

Das tut er doch?
Die Datasource ist nicht mit dem Chart verbunden. :zwinker:

Im Prinzip macht es ja keinen Unterschied, wo die Werte her kommen.
AddBubble wird manuell aufgerufen.

Zitat:

Zitat von hoika (Beitrag 1390387)
mit fest definierten Werten.

Nja, man könnte das als fest definierte Werte ansehn.
Im Debugger lässt sich prüfen, ob die Werte stimmen
und er kann zum Test auch noch ein DBGrid an die DataSource binden.

Delphi.Narium 6. Jan 2018 08:36

AW: TChart - 3 Variabeln
 
muss das
Delphi-Quellcode:
 while Query.Eof do
nicht
Delphi-Quellcode:
 while not Query.Eof do
heißen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr.
Seite 1 von 2  1 2      

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