Wenn Sie Daten eindrucksvoll grafisch präsentieren wollen, dann ist die Chart-Komponente gb.chart genau das Richtige. Leider ist die Komponente nicht stabil und auch nicht fehlerfrei. Trotzdem lassen sich zum Beispiel mit wenigen Anweisungen einfache, aber aussagekräftige Diagramme wie Linien-Diagramme erzeugen. Deshalb kann es sich durchaus lohnen, mit dieser Komponente zu experimentieren. Das gilt auch vor dem Hintergrund, dass der Entwickler ankündigte, die Komponente zu überarbeiten.
Die Klasse Chart kann wie ein Objekt verwendet werden, indem man bei Bedarf eine versteckte Instanz erzeugt. Diese Klasse verhält sich wie ein schreibgeschütztes Array. Die Diagrammklasse repräsentiert ein Diagrammobjekt, das in einer DrawingArea oder auf einem Bild vom Typ Picture gezeichnet werden kann. Sie können auch die Daten ständig aktualisieren – im Gegensatz zu den meisten anderen Chart-Bibliotheken.
Die Klasse können Sie erzeugen:
Dim hChart As Chart hChart = New Chart()
Anschließend können Sie die Werte ausgewählter Chart-Eigenschaften festlegen:
With hChart .Title = "Temperature time diagram (Berlin 2020)" ... End With
Die Klasse Chart verfügt über die folgenden Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
BackGround | Integer | Setzt die Hintergrundfarbe oder gibt die Hintergrundfarbe für den Diagramm-Hintergrund zurück. |
Colors | _Colors | Definiert die Farben zum Beispiel für die einzelnen Teile in einem Säulen-Diagramm, Kreis-Diagramm oder Ring-Diagramm in einem Integer-Array. |
CountDataSets | Integer | Legt die Anzahl der Datensätze fest oder gibt die Anzahl der Datensätze zurück, die im Diagramm verwendet werden sollen. Wenn es zum Beispiel 2 Datensätze in einem „Säulen“-Diagramm gibt, werden 2 Säulen nebeneinander in unterschiedlichen Farben gezeichnet. |
Headers | _CHeaders | Definiert die Bezeichnungen der Werte auf der x-Achse in einem String-Array. |
Height | Integer | Setzt die Diagramm-Höhe (Pixel) oder gibt den Wert zurück. |
Width | Integer | Setzt die Diagramm-Breite (Pixel) oder gibt den Wert zurück. |
Legend | _CLegend | Setzt die Beschreibungen in der Diagramm-Legende. |
Proportionnal | Boolean | Legt fest oder gibt zurück, ob die im Diagramm verwendeten Schriften proportional zur Diagramm-Größe gezeichnet werden. Die Eigenschaft wird so bezeichnet! |
Title | _CTitle | Setzt die Beschreibung des Diagramms mit Chart.Title.Text. |
Type | Integer | Setzt den Diagramm-Typ oder gibt den Typ zurück. Der Typ wird durch eine der ChartType-Konstanten bestimmt. |
XAxe | _CXAxe | Liefert ein Objekt, das anzeigt, wie die X-Achse im Diagramm dargestellt wird. |
YAxe | _CYAxe | Liefert ein Objekt, das anzeigt, wie die Y-Achse im Diagramm dargestellt wird. |
Tabelle 23.8.0.2.1 : Eigenschaften der Klasse Chart
Hier sehen Sie die Übersicht zu den Diagramm-Typen, von denen jedoch nur wenige brauchbare () Diagramme liefern:
Die Farben für die einzelnen Teile zum Beispiel in einem Säulen-Diagramm, Kreis-Diagramm oder Ring-Diagramm legen Sie in einem Integer-Array fest. Die virtuelle Klasse _Colors verfügt über diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Value | Integer[ ] | Legt die Farben für die einzelnen Daten(-Reihen) in einem Integer-Array fest. |
Style | Integer | Legt fest, ob die Farben aus einem selbst definierten Farb-Array ausgelesen oder automatisch generiert werden. Style kennt die Konstanten Custom und Auto. |
Tabelle 23.8.0.3.1 : Eigenschaften der Klasse _Colors
Die Klasse _Colors verfügt über eine Add()-Methode, mit der Sie einzelne Farben festlegen können. Wenn ein Datensatz aus jeweils 3 Werten besteht, dann benötigen Sie auch 3 Farben:
With Chart.Colors.Values .Add(Color.Red) .Add(Color.Blue) .Add(Color.Green) End With
Beispiel:
Public Sub btnColors_Click() If btnColors.Text = ("Custom colors") Then ' Die Farben werden aus einem selbst definierten Farb-Array ausgelesen Chart.Colors.Style = Chart.Colors.Custom btnColors.Text = ("Default colors") Else Chart.Colors.Style = Chart.Colors.Auto ' Die Farben werden automatisch generiert btnColors.Text = ("Custom colors") Endif DrawingArea1.Refresh() End
Mit Hilfe der Klasse definieren Sie die Bezeichnungen der Werte auf der x-Achse in einem String-Array. Die virtuelle Klasse _CHeaders verfügt über folgende Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Count | Integer | Legt die Anzahl der einzelnen Bezeichner fest. |
Values | String[ ] | Legt die unterschiedlichen Bezeichner in einem String-Array fest. |
Tabelle 23.8.0.4.1 : Eigenschaften der Klasse _CHeaders
Die Klasse verfügt über eine Add()-Methode, mit der Sie einzelne Bezeichner festlegen können. Wenn zum Beispiel 4 Werte auf der x-Achse angezeigt werden sollen, dann benötigen Sie auch 4 Bezeichner:
With Chart.Headers.Values .Add("Frühjahr") .Add("Sommer") .Add("Herbst") .Add("Winter") End With Chart.Headers.Values = ["Frühjahr", "Sommer", "Herbst", "Winter"] ' Alternative
In dieser Klasse werden die Eigenschaften für die Diagramm-Legende gesetzt. Die virtuelle Klasse _CLegend verfügt über diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Font | Font | Legt den Font fest oder gibt ihn zurück. |
Position | Integer | Gibt die Position an, wo die Legende angezeigt wird. Den Wert liefern die beiden Konstanten Align.Bottom und Align.Right. Andere Werte werden ignoriert. |
Title | String | Setzt die Überschrift der Legende. |
Visible | Boolean | Legt fest, ob die Legende angezeigt wird oder nicht. Sie können den Wert auch auslesen. |
Tabelle 23.8.0.5.1 : Eigenschaften der Klasse _CLegend
Beispiel:
'-- Defines the legend of the diagram. Chart.Legend.Title = "Information" Chart.Legend.Font = Font["Arial,+5"] ' Font for the legend - relative Chart.Legend.Position = Align.Bottom ' Alternative: Align.Right Chart.Legend.Visible = True
Die virtuelle Klasse _CTitle hat drei Eigenschaften, mit denen Sie den Font, den Text und die Sichtbarkeit für den Diagramm-Titel beschreiben:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
Font | Font | Legt den Font fest oder gibt ihn zurück. |
Text | String | Setzt die Diagramm-Überschrift. Sie können den Wert auch auslesen. |
Visible | Boolean | Legt fest, ob die Diagramm-Überschrift angezeigt wird oder nicht. Sie können den Wert auch auslesen. |
Tabelle 23.8.0.6.1 : Eigenschaften der Klasse _CTitle
Beispiel:
'-- Visibility, title and font of the diagram Chart.Title.Visible = True Chart.Title.Text = "Spannung-Zeit-Diagramm" Chart.Title.Font = Font["Arial,24"] ' Font for the title - absolute in px
Die Eigenschaften der x-Achse (Abzisse) des Diagramms werden über deren Eigenschaften gesetzt. Die virtuelle Klasse _CXAxe hat diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
AutoScale | Boolean | Legt mit True fest, dass die x-Achse automatisch beschriftet wird. |
Font | Font | Legt den Font fest oder gibt ihn zurück. |
MinValue | Float | Setzt den minimalen Wert auf der x-Achse oder gibt ihn zurück. Standard ist 0. |
MaxValue | Float | Setzt den maximalen Wert auf der x-Achse oder gibt ihn zurück. Standard ist 100. |
Step | Float | Setzt die Schrittweite auf der x-Achse oder gibt sie zurück. |
Visible | Boolean | Gibt an, ob die die x-Achse angezeigt werden soll oder nicht. Sie können den Wert auch auslesen. |
Tabelle 23.8.0.7.1 : Eigenschaften der Klasse _CXAxe
Die Eigenschaften der y-Achse (Ordinate) des Diagramms werden über die Klassen-Eigenschaften gesetzt. Die virtuelle Klasse _CYAxe besitzt diese Eigenschaften:
Eigenschaft | Datentyp | Beschreibung |
---|---|---|
AutoScale | Boolean | Legt mit True fest, dass die y-Achse automatisch beschriftet wird. |
Font | Font | Legt den Font fest oder gibt ihn zurück. |
MinValue | Float | Setzt den minimalen Wert auf der y-Achse oder gibt ihn zurück. Standard ist 0. |
MaxValue | Float | Setzt den maximalen Wert auf der y-Achse oder gibt ihn zurück. Standard ist 100. |
Step | Float | Setzt die Schrittweite auf der y-Achse oder gibt sie zurück. |
ShowIntervallLines | Boolean | Gibt an, ob horizontale Linien – parallel zur x-Achse – angezeigt werden sollen. Der Standard ist True. |
Visible | Boolean | Gibt an, ob die y-Achse angezeigt werden soll. Sie können den Wert auch auslesen. |
Tabelle 23.8.0.8.1 : Eigenschaften der Klasse _CYAxe
Beispiel:
Chart.YAxe.AutoScale = False Chart.YAxe.MinValue = 0 Chart.YAxe.MaxValue = 5 Chart.YAxe.Step = 1 Chart.YAxe.ShowIntervalLines = False Chart.YAxe.Visible = True
Hinweis:
Ein vollständiges Projekt für ein Linien-Symbol-Diagramm, das ausgewählte Klassen der Komponente gb.chart verwendet, finden Sie im nächsten Kapitel. Die Besonderheit besteht darin, dass die anzuzeigenden Daten in drei Serien aus einer SQLite-Datenbank-Tabelle ausgelesen werden.
Artikel