![]() |
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? |
AW: TChart - 3 Variabeln
Hallo,
den String in Float umwandeln? (StringToFloat). Zeig mal den Code, den du schon hast. |
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:
die Werte von
x=1
Delphi-Quellcode:
einmalen und dann die Achse an der Stelle halt nur mit "Günther" statt "1" beschriften.
Benutzer=Günther
Ein Chart hat dazu ein
Delphi-Quellcode:
-Event, oder so ähnlich.
OnGetAxisLabel
|
AW: TChart - 3 Variabeln
Zitat:
|
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. |
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. |
AW: TChart - 3 Variabeln
Gut ich habe mal die Einstellungen getroffen.
Delphi-Quellcode:
Ich wollte mich erstmal an den Versuch wagen mit den Zahlen zu arbeiten, um dann in nachhinein die Einstellungen zu treffen.
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; 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? |
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). |
AW: TChart - 3 Variabeln
Zitat:
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:
Im Debugger lässt sich prüfen, ob die Werte stimmen und er kann zum Test auch noch ein DBGrid an die DataSource binden. |
AW: TChart - 3 Variabeln
muss das
Delphi-Quellcode:
nicht
while Query.Eof do
Delphi-Quellcode:
heißen?
while not Query.Eof do
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz