Diagramme mit C# erstellen 👍 👎

Häufig möchte man Statistiken grafisch aufbereitet darstellen. Mit diesem Beitrag möchte ich gerne zeigen, wie sich mit Hilfe einiger unter System.Web.UI.DataVisualization.Charting befindlichen Klassen sehr einfach dynamisch Diagramme erzeugen lassen. Der korrespondierende Namespace für klassische Anwendungen lautet System.Windows.Forms.DataVisualization.Charting.

Für unser Beispiel verwenden wir eine einfache Windows-Anwendung und folgende Datensammlung:
Daten (einige BMW-Modelle)
010203040506
Dictionary<string, double> data = new Dictionary<string, double>() {    {"125i", 160},    {"335i", 225},    {"550i", 330},    {"760i", 400}};
Die Schlüssel bezeichnen das jeweilige Modell und der entsprechende Wert die Leistung (in kW). Daraus erzeugen wir nun ein einfaches Balkendiagramm und speichern das Ergebnis als dia.png:
Diagramm erstellen und speichern
01020304050607080910111213141516171819202122232425262728293031323334353637
using(Chart chart = new Chart() {    Height = 345,    Width = 543}) {      // Konfiguration    chart.Titles.Add("BMW-Leistungsvergleich");
chart.ChartAreas.Add(new ChartArea("statistic") { AxisX = new Axis() { MajorGrid = new Grid() { Enabled = false } }, AxisY = new Axis() { MajorGrid = new Grid() { LineColor = Color.LightGray, LineDashStyle = ChartDashStyle.Dot }, Title = "kW" } });
chart.Series.Add(new Series("data") { ChartType = SeriesChartType.Column });
// Daten foreach(KeyValuePair<string, double> entry in data) { chart.Series["data"].Points.Add(new DataPoint() { AxisLabel = entry.Key, YValues = new double[] { entry.Value } }); }
// Ausgabe chart.SaveImage("dia.png", ChartImageFormat.Png);}
Als grundlegende Konfiguration wurde in diesem Beispiel das Gitternetz im Hintergrund zur Orientierung auf horizontale Linien beschränkt und durch Farbänderung und Punktierung etwas subtiler gestaltet. Außerdem wurden ein paar Beschriftungen ergänzt und ansonsten die Standardkonfiguration belassen.

Wichtig zu verstehen ist das Konzept, welches zuerst eine ChartArea als Grundfläche und anschließend Series für die eigentlichen Daten erfordert. Es können jeweils mehrere davon in einem Diagramm untergebracht werden.

Selbstverständlich sind umfassende Optionen vorgesehen, die das Endergebnis praktisch völlig anders erscheinen lassen können – bis hin zum eigentlichen Diagrammtyp. Details zu den jeweiligen Klassen finden sich im MSDN.




Anhänge (1)
1.png


Projektverweise

Kategorien / Archiv  |  Übersicht RSS-Feed

Schlagworte

Suche