Hi!
Hier mal ein Sample, wie man was mittm Chart - Control einstellen kann.
ChartControl ist ähnlich DatagridView auf Databinding ausgelegt, nur präsentiert es die Daten natürlich ganz anners, und ist Readonly.
Aber ebenso wie beim DGV gibt man auch hier eine BindingSource als DataSource an, und kann dann Series hinzufügen, und daran herum-konfigurieren, dasses nurso kracht.
Ich hab hiermal eine fiktive Forum-Statistik gebastelt, bei der die Anzahlen von Neuregistrierungen und LogIns aufgenommen wurden - also 2 Series im Chart:
Die Daten liegen in einer Tabelle im typisierten Dataset vor - ihr wisst ja: ich kannix anneres
(Zum Thema typisiertes Dataset verweise ich auf meine Tuts im Datenbank-Tutorial - Bereich.)
Achso: Codemäßig gibt dieses "Tut" zum Thema ChartControl eigentlich garnichts her.
Der enthaltene Code kümmert sich ausschließlich um Laden und Speichern der Daten, und eine "Speichern?" - Abfrage beim FormClosing ist drin und solche Sachen.
Was am Chart gemacht ist, ist ausschließlich im Form-Designer gemacht - ich zeige mal die doch etwas komplexen Dialoge:
Im Series - Dialog der LogIns-Serie sind folgende Einstellungen vorgenommen:
Am ChartArea habich eiglich garnix rumgeschraubt, sondern gleich die darin enthaltene Axes-Auflistung geöffnet, die X-axis angewählt, und vonne X-axis den LabelStyle erweitert, um dann endlich - puh! - den Format-String "d.MM" einzugeben.
Dieser Formatstring formatiert nun die Datum-Beschriftungen der X-Achse so, dass nur Tag und Monat angezeigt werden, nicht das Jahr.
Also wers noch nicht bemerkt hat: Es ist ein bisserl verzwickt, verzwackt und verschachtelt, aber die Möglichkeiten sind mächtig gewaltig
Letzter Link: MSDN-CodeGallery: WinForms-Chartcontrol-Samples - leider ungültig geworden, Ersatz siehe Post#4
Das ist ein geniales Demo-Programm, und zeigt in über 100 Beispielen ungefähr alles, was das Chart-Control kann.
Beeindruckend finde ich das Live-Chart, also die Performance reicht auch für kontinuirliche Aktualisierung auch großer Datenmengen.
Ebenfalls sehr schick die Navigations-Samples: Man kann mit der Maus im Chart herumfahren, und bekommt Werte angezeigt, oder man kann per Tastatur den Focus von einem Messpunkt zum nächsten verschieben und so Scherze.
Hat aber 2 Probleme:
@robot91 fund neulich in den Tiefen der Einstellungsmöglichkeiten eine, mit der man ein scrollbares Chart erhält, wo sich nicht alle Datenpunkte zusammendrängeln, sondern wo sich das Chart bei "Überfüllung" dann virtuell erweitert und eine Scrollbar bereitstellt:(Also das ist jetz per Code, aber kann man auch in den Dialogen finden)
Ist oft sehr nützlich!
Hier mal ein Sample, wie man was mittm Chart - Control einstellen kann.
ChartControl ist ähnlich DatagridView auf Databinding ausgelegt, nur präsentiert es die Daten natürlich ganz anners, und ist Readonly.
Aber ebenso wie beim DGV gibt man auch hier eine BindingSource als DataSource an, und kann dann Series hinzufügen, und daran herum-konfigurieren, dasses nurso kracht.
Ich hab hiermal eine fiktive Forum-Statistik gebastelt, bei der die Anzahlen von Neuregistrierungen und LogIns aufgenommen wurden - also 2 Series im Chart:
Die Daten liegen in einer Tabelle im typisierten Dataset vor - ihr wisst ja: ich kannix anneres
(Zum Thema typisiertes Dataset verweise ich auf meine Tuts im Datenbank-Tutorial - Bereich.)
Achso: Codemäßig gibt dieses "Tut" zum Thema ChartControl eigentlich garnichts her.
Der enthaltene Code kümmert sich ausschließlich um Laden und Speichern der Daten, und eine "Speichern?" - Abfrage beim FormClosing ist drin und solche Sachen.
Was am Chart gemacht ist, ist ausschließlich im Form-Designer gemacht - ich zeige mal die doch etwas komplexen Dialoge:
Im Series - Dialog der LogIns-Serie sind folgende Einstellungen vorgenommen:
- XValueMember: "Day"
- XValueType: "DateTime"
- YValueMembers: "LogIns"
- YValueType: "Int32"
Diese 4 Einstellungen sind entscheidend: Auf der X-Achse wird das Datum aufgetragen (Datentyp DateTime) und die Y-Achse kriegt die LogIns, welches sind ja Integer
- Color: "Blue"
- ChartType: "Spline"
Das macht diese hübsche Ausgleichskurve durch die Punkte. Es gibt auch ChartType.Line, .Bar, .Pie und ca. 20 weitere Optionen, aber in meiner Vorstellung ist ein Chart halt erstmal ein LinienChart, vorzugsweise mit Ausgleichskurve ;).
- MarkerStyle: "Diamond"
gfällt mir auch am besten - vlt. hätte ich eine größere MarkerSize nehmen sollen - man erkennt die Kostbarkeiten kaum.
- ChartArea: ChartArea1
Das ChartArea war so voreingestellt, aber ist glaub wichtig. Son ChartArea kann mit mehreren Series verknüpft sein, und stellt eine ihnen gemeinsame Beschriftung bereit - komme ich als nächstes zu.
Am ChartArea habich eiglich garnix rumgeschraubt, sondern gleich die darin enthaltene Axes-Auflistung geöffnet, die X-axis angewählt, und vonne X-axis den LabelStyle erweitert, um dann endlich - puh! - den Format-String "d.MM" einzugeben.
Dieser Formatstring formatiert nun die Datum-Beschriftungen der X-Achse so, dass nur Tag und Monat angezeigt werden, nicht das Jahr.
Also wers noch nicht bemerkt hat: Es ist ein bisserl verzwickt, verzwackt und verschachtelt, aber die Möglichkeiten sind mächtig gewaltig
Letzter Link: MSDN-CodeGallery: WinForms-Chartcontrol-Samples - leider ungültig geworden, Ersatz siehe Post#4
Das ist ein geniales Demo-Programm, und zeigt in über 100 Beispielen ungefähr alles, was das Chart-Control kann.
Beeindruckend finde ich das Live-Chart, also die Performance reicht auch für kontinuirliche Aktualisierung auch großer Datenmengen.
Ebenfalls sehr schick die Navigations-Samples: Man kann mit der Maus im Chart herumfahren, und bekommt Werte angezeigt, oder man kann per Tastatur den Focus von einem Messpunkt zum nächsten verschieben und so Scherze.
Hat aber 2 Probleme:
- ist c#
- Der Autor hat offensichtlich geplant, auch eine vb-Version zu erstellen, und deswegen einen
\c#
-Ordner eingefügt. Dann aber nicht weiter-gemacht, und auch vergessen, alle möglichen Pfade anzupassen.
Lösung: Der ganze Kram aus dem c#-Ordner muss raus und eine Ordner-ebene höher verschoben werden.
Dann passt wieder alles, und der Laden läuft geschmiert wie die Banken-Rettung in Griechenland.
@robot91 fund neulich in den Tiefen der Einstellungsmöglichkeiten eine, mit der man ein scrollbares Chart erhält, wo sich nicht alle Datenpunkte zusammendrängeln, sondern wo sich das Chart bei "Überfüllung" dann virtuell erweitert und eine Scrollbar bereitstellt:(Also das ist jetz per Code, aber kann man auch in den Dialogen finden)
Ist oft sehr nützlich!
Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von „ErfinderDesRades“ ()