Version 6.0 (Geändert)
Dieser Abschnitt zeigt Beispiele für zwei- und dreidimensionale Diagramme, die mit den Funktionen CT Chart selection und CT Chart data erstellt wurden.
Wie Sie zwei- und dreidimensionale Diagramme anhand von Arrays erstellen, erfahren Sie im Abschnitt Diagramme aus Arrays (Beispiele).
Jedes Beispiel enthält:
Eine Beschreibung der Ausgangssituation,
Die Struktur der Beispieldatenbank,
Ein Diagramm, das anhand der Beispieldaten komplett programmiert wurde,
Den Code zum Erstellen dieses Diagramms.
Zweidimensionales Diagramm mit Reihen aus Feldern erstellen
Nehmen wir an, Sie besitzen ein Software-Unternehmen mit Kunden in vielen verschiedenen Marktsektoren. Das Spektrum reicht von Endkunde über Firmenkunde bis hin zum Zwischenhändler. Ihre Datenbank überwacht Kunden und Verkäufe.
Dafür gibt es folgende Tabelle:
Mit 4D Chart erstellen Sie ein Tortendiagramm, das für jede Kundenart den Gesamtverkauf in Prozent angibt.
Dieses Diagramm wurde mit der Methode DIAGRAMM MARKTSEKTOR erstellt.
`Methode: DIAGRAMM MARKTSEKTOR `Kategorien: Kundenart `Werte: AnzahlVerkauf C_LONGINT ($Left;$Top;$Right;$Bottom) C_LONGINT ($Bereich;$Chart;$Title;$Locate) C_LONGINT ($Left2;$Top2;$Right2;$Bottom2) `Erstelle Auswahl der Datensätze für das Diagramm ALL RECORDS ([Marktdaten]) `Array der Felder für Datenreihe ARRAY LONGINT ($aFields;1) $aFields{1}:=Field(->[Marktdaten]AnzahlVerkauf) `Oberflächenelemente ausblenden CT SET DISPLAY (Bereich;1;0) `Menüleiste ausblenden CT SET DISPLAY (Bereich;2;0) `Chart Toolbar ausblenden CT SET DISPLAY (Bereich;3;0) `Objekt Toolbar ausblenden CT SET DISPLAY (Bereich;6;0) `Rollbalken ausblenden CT SET DISPLAY (Bereich;9;0) `Lineal ausblenden `Erstelle Tortendiagramm $Chart:=CT Chart selection (Bereich;6;1;1;Table(->[Marktdaten]);2;$aFields) `Verschiebe Tortenstück #3 um 10 Grad CT EXPLODE PIE (Bereich;$Chart;2;10) `Setze Position der Legende (unten, horizontal) CT SET LEGEND ATTRIBUTES (Bereich;$Chart;1;0;0;0;8;0;0) `Füge links oben Titel hinzu $Title:=CT Draw text (Bereich;1;1;210;3;"Kundenverteilung nach Sektor") `Format des Titels (Palatino, 14 Punkt, Fett, Zentriert, Schwarz) $Color:=CT Index to color (16) $Font:=CT Font number ("Palatino") CT SET TEXT ATTRIBUTES (Bereich;$Title;$Font;14;1;$Color;1) `Erhalte Größe des Bereichs zum Zentrieren CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom) `Passe Diagramm an die Fenstergröße minus 50 Punkt an CT SIZE (Bereich;$Chart;$Right-50;$Bottom-50) `Zentriere Diagramm CT GET BOUNDARY (Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2) $Locate:=(($Right-$Left)-($Right2-$Left2))/2 CT MOVE (Bereich;$Chart;$Locate;$Top2) `Zentriere Titel CT GET BOUNDARY (Bereich;$Title;$Left2;$Top2;$Right2;$Bottom2) $Locate:=(($Right-$Left)-($Right2-$Left2))/2 CT MOVE (Bereich;$Title;$Locate;$Top2) `Bewege Diagramm 9 Punkt nach unten CT GET BOUNDARY (Bereich;$Chart;$Left;$Top;$Right;$Bottom) CT MOVE (Bereich;$Chart;$Left;$Top+9) `Alle Objekte abwählen CT SELECT (Bereich;-1;0)
Dreidimensionales Diagramm mit Reihen aus Feldern erstellen
Nehmen wir an, Sie analysieren den Markt für Neuwagen und verwenden eine Datenbank, um das beste Auto für Ihr Geld herauszufinden. Sie haben Ihre Suche auf fünf Autos konzentriert und möchten vergleichen, wieviel Kosten jedes Auto pro Jahr für Kfz-Steuer, Versicherung und Wartung verursacht.
Sie geben die Daten in folgende Tabelle ein:
Zum Analysieren stellen Sie die gesammelte Information in einem dreidimensionalen Diagramm dar.
Mit 4D Chart erstellen Sie folgendes Diagramm:
Dieses Diagramm wurde mit der Methode DIAGRAMM AUTOKOSTEN erstellt. Sie verwendet die Funktion CT Chart selection. Mit dieser Funktion übergeben Sie ein Array von Feldern. Die Namen der Felder werden die Namen der Reihen, ihre Werte werden auf der Werteachse gezeichnet. In diesem Beispiel wurden die Felder Steuer, Versicherung und Wartung für die Reihen und Werte verwendet.
Die Methode DIAGRAMM AUTOKOSTEN lautet:
`Methode: DIAGRAMM AUTOKOSTEN `Kategorien: Autotyp `Reihen: Kostenart `Werte: Kosten in Euro C_LONGINT ($Left;$Top;$Right;$Bottom) C_LONGINT ($Area;$Chart;$Title;$Locate;$i) C_LONGINT ($Left2;$Top2;$Right2;$Bottom2) `Erstelle Auswahl der Datensätze für das Diagramm ALL RECORDS ([Autokosten]) ORDER BY ([Autokosten];[Autokosten]Kosten;>) `Array der Felder für Datenreihe ARRAY LONGINT ($aFields;3) $aFields{1}:=Field (->[Autokosten]Steuer) $aFields{2}:=Field (->[Autokosten]Wartung) $aFields{3}:=Field (->[Autokosten]Versicherung) `Oberflächenelemente ausblenden CT SET DISPLAY (Bereich;1;0) `Menüleiste ausblenden CT SET DISPLAY (Bereich;2;0) `Diagrammwerkzeuge ausblenden CT SET DISPLAY (Bereich;3;0) `Objektwerkzeuge ausblenden CT SET DISPLAY (Bereich;6;0) `Rollbalken ausblenden CT SET DISPLAY (Bereich;9;0) `Lineal ausblenden ` Erstelle Diagramm mit 3D Säulen $Chart:=CT Chart selection (Bereich;100;1;1;Table(->[Autokosten]);1;$aFields) `Richte Skala ein CT SET REAL SCALE (Bereich;$Chart;0;0;0;0;0;3000;500;100) `Zeige Legende nicht an CT SET LEGEND ATTRIBUTES (Bereich;$Chart;0;0;-1;-1;0;0;0) `Füge Bezeichnung der Achsen hinzu CT SET TITLE ATTRIBUTES (Bereich;$Chart;0;3;0;"Autotyp") CT SET TITLE ATTRIBUTES (Bereich;$Chart;1;0;0;"") `Nicht zeigen CT SET TITLE ATTRIBUTES (Bereich;$Chart;2;2;3;"Kosten (in Euro)") `Füge links oben Diagrammtitel hinzu $Title:=CT Draw text (Bereich;1;1;300;3;"Jährliche Kosten für Sedan Import") `Format des Diagrammtitels (Palatino, 14 Punkt, Fett, Zentriert, Schwarz) $Color:=CT Index to color (16) $Font:=CT Font number ("Palatino") CT SET TEXT ATTRIBUTES (Bereich;$Title;$Font;14;1;$Color;1) `Setze Farbe für 1. Reihe/grün ausfüllen $Color:=CT Index to color (10) CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;100;3;$Color) `Setze Farbe für 2. Reihe/gelb ausfüllen $Color:=CT Index to color (2) CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;200;3;$Color) `Setze Farbe für 3. Reihe/rot ausfüllen $Color:=CT Index to color (4) CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;300;3;$Color) `Setze Füllfarbe für alle Rechtecke im Gitter $Color:=CT Index to color (8) For ($i;1;3) CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;1;$i;5;$Color) End for `Setze Texteigenschaften für Beschriftung (Palatino, 9 Punkt, Fett Kursiv) $Font:=CT Font number ("Palatino") For ($i;0;2) CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;4;$i;$Font;9;3;-1) End for `Setze Texteigenschaften für Titel (Palatino, 12 Punkt, Fett) $Font:=CT Font number ("Palatino") For ($i;0;2) CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;$i;$Font;14;1;-1) End for `Erhalte Größe des Bereichs zum Zentrieren CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom) `Passe Diagramm an die Fenstergröße minus 50 Punkt an CT SIZE (Bereich;$Chart;$Right-50;$Bottom-50) `Zentriere Diagramm CT GET BOUNDARY (Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2) $Locate:=(($Right-$Left)-($Right2-$Left2))/2 CT MOVE (Bereich;$Chart;$Locate;$Top2) `Zentriere Titel CT GET BOUNDARY (Bereich;$Title;$Left2;$Top2;$Right2;$Bottom2) $Locate:=(($Right-$Left)-($Right2-$Left2))/2 CT MOVE (Bereich;$Title;$Locate;$Top2) Bewege Diagramm 9 Punkt nach unten CT GET BOUNDARY (Bereich;$Chart;$Left;$Top;$Right;$Bottom) CT MOVE (Bereich;$Chart;$Left;$Top+9) `Alle Objekte abwählen CT SELECT (Bereich;-1;0)
Zweidimensionales Diagramm mit Reihen aus Daten in Datensätzen erstellen
Nehmen wir an, Sie sind Leiter eines Ausbildungsprogramms für Bayern und möchten vergleichen, welche Testergebnisse die Auszubildenden in den einzelnen Bundesländern an verschiedenen Testtagen erzielen.
Ihre Datenbank enthält die Punktzahlen der Auszubildenden, sortiert nach Testdatum und Region.
Mit 4D Chart erstellen Sie folgendes Diagramm:
Dieses Diagramm wurde mit der Methode 2D DIAGRAMM PUNKTZAHL erstellt. Sie lautet:
`Methode: 2D DIAGRAMM PUNKTZAHL `Kategorien: Testdatum `Reihen: Bundesland `Werte: Testergebnis C_LONGINT ($Left;$Top;$Right;$Bottom) C_LONGINT ($Left2;$Top2;$Right2;$Bottom2) C_LONGINT ($Area;$Chart;$Title;$Locate;$Score;$Color;$Font;$Rect) ALL RECORDS ([Testergebnisse]) ORDER BY ([Testergebnisse];[Testergebnisse]Testdatum;>) `Oberflächenelemente ausblenden CT SET DISPLAY (Bereich;1;0) `Menüleiste ausblenden CT SET DISPLAY (Bereich;2;0) `Diagrammwerkzeuge ausblenden CT SET DISPLAY (Bereich;3;0) `Objektwerkzeuge ausblenden CT SET DISPLAY (Bereich;6;0) `Rollbalken ausblenden CT SET DISPLAY (Bereich;9;0) `Lineal ausblenden `Erstelle zweidimensionales Diagramm $Chart:=CT Chart data (Bereich;2;1;1;1;Table (->[Testergebnisse]);2;4;3) `Erstelle Diagramm im Querformat ARRAY LONGINT ($aOptions;4) $aOptions{1}:=1 `Ausrichtung: horizontal $aOptions{2}:=0 `Gestapelt: normal $aOptions{3}:=0 `Überlappen: $aOptions{4}:=50 `Abstand: CT SET CHART OPTIONS (Bereich;$Chart;$aOptions) `Zeige Achsenbezeichnung CT SET TITLE ATTRIBUTES (Bereich;$Chart;0;2;3;"Testdatum") CT SET TITLE ATTRIBUTES (Bereich;$Chart;2;3;0;"Durchschnittl. Punktzahl") `Format für Bezeichnung der Achse Kategorien (Helvetica, Schwarz, Fett Kursiv, 12 Punkt) $Color:=CT Index to color (16) $Font:=CT Font number ("Helvetica") CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;0;$Font;12;3;$Color) `Format für Bezeichnung der Achse Werte (Palatino, Rot, Fett Kursiv, 12 Punkt) $Color:=CT Index to color (4) $Font:=CT Font number ("Palatino") CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;2;$Font;12;3;$Color) `Setze Position der Beschriftung auf unten, zentriert, horizontale Ausrichtung CT SET LEGEND ATTRIBUTES (Bereich;$Chart;1;0;0;0;8;0;0) `Füge Diagrammtitel oben links ein $Title:=CT Draw text (Bereich;1;1;350;3;"Testergebnisse Azubis in Deutschland") `Format für Diagrammtitel (Geneva, 14 Punkt, Fett, Zentriert, Blau) $Color:=CT Index to color (7) $Font:=CT Font number ("Geneva") CT SET TEXT ATTRIBUTES (Bereich;$Title;$Font;14;1;$Color;1) `Verwende eigene Skala CT SET REAL SCALE (Bereich;$Chart;0;0;0;0;0;220;20;5) `Erhalte Größe des Bereichs zum Zentrieren CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom) `Passe Diagramm an die Fenstergröße minus 50 Punkt an CT SIZE (Bereich;$Chart;$Right-50;$Bottom-50) `Richte Diagramm horizontal aus CT GET BOUNDARY (Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2) $Locate:=(($Right-$Left)-($Right2-$Left2))/2 CT MOVE (Bereich;$Chart;$Locate;$Top2) `Richte Titel horizontal aus CT GET BOUNDARY (Bereich;$Title;$Left2;$Top2;$Right2;$Bottom2) $Locate:=(($Right-$Left)-($Right2-$Left2))/2CT MOVE (Bereich;$Title;$Locate;$Top2) Bewege Diagramm 10 Punkt nach unten CT GET BOUNDARY (Bereich;$Chart;$Left;$Top;$Right;$Bottom) CT MOVE (Bereich;$Chart;$Left;$Top+10) `Setze um Diagramm und Titel graues Rechteck $Rect:=CT Draw rectangle (Bereich;$Left-2;$Top2-2;$Right+2;$Bottom+2+10;0) CT SET FILL ATTRIBUTES (Bereich;$Rect;3;CT Index to color (13)) CT SET LINE ATTRIBUTES (Bereich;$Rect;3;CT Index to color (15);1) `Richte alle Objekte vertikal aus CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom) CT GET BOUNDARY (Bereich;-1;$Left2;$Top2;$Right2;$Bottom2) $Locate:=(($Bottom-$Top)-($Bottom2-$Top2))/2 CT MOVE (Bereich;-1;$Left2;$Locate) `Setze Rechteck in den Hintergrund CT SELECT (Bereich;-1;0) `Alles abwählen CT SELECT (Bereich;$Rect;1) `Wähle Rechteck CT DO COMMAND (Bereich;24002) `Setze in Hintergrund CT SELECT (Bereich;-1;0) `Alles abwählen `Alle Objekte abwählen CT SELECT (Bereich;-1;0)
Dreidimensionales Diagramm mit Reihen aus Daten in Datensätzen erstellen
Nehmen wir an, Sie möchten wissen, wie der Produktumsatz Ihrer Firma im Vergleich zu anderen Firmen Ihrer Branche aussieht. Sie speichern den täglichen Umsatz jeder Firma in einer 4th Dimension Datenbank. In der Beispieldatenbank wurden die Umsätze im Monatsdurchschnitt gespeichert.
Das folgende Diagramm vergleicht den Wert der Firma Müller Schuhe mit dem Durchschnitt der Branche. Die Daten dafür wurden direkt, also ohne zusätzliche Bearbeitung aus der Datenbank entnommen.
Die Methode DIAGRAMM UMSATZ erstellt ein Diagramm mit den Werten der Felder direkt aus der Datenbank. Sind in der Datenbank bereits die Durchschnittswerte berechnet, müssen Sie keine weiteren Berechnungen durchführen. Haben Sie dagegen nur den jeweiligen Tages-wert gespeichert, müssen Sie erst den monatlichen Durchschnitt ausrechnen, diesen in einem Array speichern und das Diagramm mit der Funktion CT Chart arrays erstellen.
Ein Beispiel für ein Diagramm mit Array finden Sie im Abschnitt Zweidimensionales Diagramm aus Arrays erstellen.
Die Methode DIAGRAMM UMSATZ gilt für bereits in der Datenbank berechnete Durchschnitts-werte:
`Methode: DIAGRAMM UMSATZ `Kategorien: Monate des Jahres `Reihen: Leistung der Firma bzw. der Branche `Werte: Durchschnittl. Umsatz C_LONGINT ($Left;$Top;$Right;$Bottom) C_LONGINT ($Left2;$Top2;$Right2;$Bottom2) C_LONGINT ($Area;$Chart;$Title;$Locate;$Font;$Color) `Erstelle Auswahl der Datensätze für das Diagramm ALL RECORDS ([Umsatzberichte]) ORDER BY ([Umsatzberichte];[Umsatzberichte]Monat;>) `Oberflächenelemente ausblenden CT SET DISPLAY (Bereich;1;0) `Menüleiste ausblenden CT SET DISPLAY (Bereich;2;0) `Diagrammwerkzeuge ausblenden CT SET DISPLAY (Bereich;3;0) `Objektwerkzeuge ausblenden CT SET DISPLAY (Bereich;6;0) `Rollbalken ausblenden CT SET DISPLAY (Bereich;9;0) `Lineal ausblenden `Erstelle 3D Liniendiagramm $Chart:=CT Chart data (Bereich;101;2;1;1;Table (->[Umsatzberichte]);2;1;3) `Lege Skala fest CT SET REAL SCALE (Bereich;$Chart;0;0;0;0;5;20;5;1) `Drehe Diagramm in beiden Richtungen um 0 Grad CT SET 3D VIEW (Bereich;$Chart;0;0) `Setze Füllfarbe für alle Rechtecke im Gitter CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;1;1;5;CT Index to color (15)) `Setze Füllfarbe für Reihen (Grün, Rot) CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;100;3;CT Index to color (10)) CT SET CHART FILL ATTRIBUTES (Bereich;$Chart;8;200;3;CT Index to color (4)) `Setze Linienstärke und -farbe für Reihen (Grün, Rot, 4 Punkt) CT SET CHART LINE ATTRIBUTES (Bereich;$Chart;8;100;3; CT Index to color (10);4) CT SET CHART LINE ATTRIBUTES (Bereich;$Chart;8;200;3; CT Index to color (4);4) `Setze Texteigenschaften für Achsenbezeichnung (Palatino, Fett Kursiv, 12 Punkt) $Font:=CT Font number ("Palatino") $Color:=CT Index to color (16) `Schwarz CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;0;$Font;12;3;$Color) $Color:=CT Index to color (10) `Grün CT SET CHART TEXT ATTRIBUTES (Bereich;$Chart;5;2;$Font;12;3;$Color) `Zeige Beschriftung der Achsen CT SET LABEL ATTRIBUTES (Bereich;$Chart;2;3;0;"Euro ##") CT SET LABEL ATTRIBUTES (Bereich;$Chart;0;3;3;"##/##/##") CT SET LABEL ATTRIBUTES (Bereich;$Chart;1;0;0;"") `Diese Bezeichnungen ausblenden `Füge Bezeichnung für Kategorie- und Werteachse hinzu CT SET TITLE ATTRIBUTES (Bereich;$Chart;0;3;0;"Datum") CT SET TITLE ATTRIBUTES (Bereich;$Chart;2;2;3;"durchschnittl. Lagerpreis") `Setze Position der Legende (oben zentriert, horizontal) CT SET LEGEND ATTRIBUTES (Bereich;$Chart;1;0;0;0;7;0;0) `Füge links oben Diagrammtitel hinzu $Title:=CT Draw text (Bereich;1;1;350;3;"Leistung: Firma vs Branche") `Format des Diagrammtitels (Palatino, 14 Punkt, Fett, Zentriert, Blau) $Color:=CT Index to color (7) $Font:=CT Font number ("Palatino") CT SET TEXT ATTRIBUTES (Bereich;$Title;$Font;14;1;$Color;1) `Erhalte Größe des Bereichs zum Zentrieren CT GET AREA BOUNDARY (Bereich;1;$Left;$Top;$Right;$Bottom) `Passe Diagramm an die Fenstergröße minus 50 Punkt an CT SIZE (Bereich;$Chart;$Right-50;$Bottom-50) `Zentriere Diagramm CT GET BOUNDARY (Bereich;$Chart;$Left2;$Top2;$Right2;$Bottom2) $Locate:=(($Right-$Left)-($Right2-$Left2))/2 CT MOVE (Bereich;$Chart;$Locate;$Top2)