1 / 26

Microsoft Chart Controls

Microsoft Chart Controls. Microsoft Chart Controls – este un set de controale grafice care permit vizualizarea graficelor în aplicații statistico-financiare complexe, atât în ASP.NET cât și în Windows Forms Avantaje/Facilități: Dezvoltare integrată în Visual Studio

Download Presentation

Microsoft Chart Controls

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Microsoft Chart Controls

  2. Microsoft Chart Controls – este un set de controale grafice care permit vizualizarea graficelor în aplicații statistico-financiare complexe, atât în ASP.NET cât și în Windows Forms • Avantaje/Facilități: • Dezvoltare integrată în Visual Studio • Scalabilitate – număr teoretic nelimitate de grafice-chart, titluri asociate, legende, adnotări, serii de date prelucrare, cazuri luate în considerare • Asigură suport pentru un număr mare de tipuri de grafice (35) • Permite legarea facilă la diverse surse de date (masive, baze de date, fisiere XML) • Asigura suport pentru analiză statistico-financiară – peste 50 de formule utilizate în analiza de date, transformarea datelor sau analiză financiară

  3. Facilități specifice aplicațiilor Windows Form (zooming, scooling, printing) • Asigură extensie 3D pentru anumite tipuri de grafice • Tipuri de grafice. Sunt identificate prin: System.Windows.Forms.DataVisualization.Charting.SeriesChartType - Tipul implicit este Column

  4. Chart public class Chart : DataBoundControl, IPostBackEventHandler

  5. Chart Areas – Graficul Chart conține mai multe regiuni rectangulare în care se desenează câte un grafic elementar, ChartArea. Acestea sunt accesate prin proprietatea ChartAreas a clasei Chart public ChartAreaCollection ChartAreas { get; } public class ChartArea : ChartNamedElement Chart Series – reprezintă seriile de date asociate unui grup de indivizi (cazuri, entități). Fiecare serie este asociată unui tip de grafic. public SeriesCollection Series { get; } public class Series : DataPointCustomProperties O serie contine obiecte DataPoint memorate într-o colecție DataPointCollection Legend – Graficul Chart poate contine un număr nelimitat de legende. Aceastea sunt memorate in colecția Legends public LegendCollection Legends { get; } public class Legend : ChartNamedElement

  6. Titles - Controlul Chart conține o colecție de titluri, definite prin proprietatea Titles: public TitleCollection Titles { get; } public class Title : ChartNamedElement, IDisposable, IChartMapArea Clasa Title are proprietăți care permit poziționarea titlului în raport cu graficul, conținutul text al titlului și modul de afișare (font, mărime etc.) Annotations – Adnotările sunt introduse prin proprietatea de tip colecție Annotations: public AnnotationCollection Annotations { get; } Există mai multe tipuri de adnotări: LineAnnotation, HorizontalLineAnnotation, VerticalLineAnnotation, PolylineAnnotation, TextAnnotation etc. Adnotarea se poate face in pozitii absolute, relativ la anumite puncte, sau anumite arii prin proprietățile Anchor

  7. Sistemul de coordonate Sistemul de coordonate este relativ la o fereastra 100x100, având originea stânga-sus Coordonatele reale sunt aduse mai întâi în acest spațiu, după care are loc transformarea de vizualizare

  8. Elemente de design Alegerea paletei de culori se realizează prin intermediul proprietății Palette: public ChartColorPalette Palette { get; set; } BrightPastel este paleta de culori implicită

  9. BackGradientStyle – sensul aplicării gradientului de culoare (stânga-dreapta, sus-jos etc.) Cele două culori gradient sunt stabilite prin proprietățile BackColor și BackSecondaryColor. Tipurile de gradient sunt: • BackImage – stabilește imaginea de font. Proprietatea BackgroundImageLayout stabilește modul de dispunere al imaginii (None, Tile, Center, Stretch, Zoom), iar BackImageAlignment, poziția (Top, Bottom, Center etc.) • Stabilirea culorii de fond se realizează cu ajutorul proprietăților: • BackColor –stabilește culoarea de fond

  10. Stabilirea bordurilor. Proprietăți: • BorderlineColor : culoarea • BorderlineDashStyle : stilul. Valoarea implicită: NotSet (graficul nu are bordură). Valori posibile: NotSet, Dash, DashDot, DashDotDot, Dot, Solid • BorderlineWidth: grosimea bordurii Exemplu: chart.BorderlineColor = Color.Blue; chart.BorderlineDashStyle = ChartDashStyle.DashDot; chart.BorderlineWidth = 3;

  11. Conectarea la sursele de date – Data Binding • Microsoft Chart Controls asigură următoarele facilități in lucrul cu date: • Adăugare dinamică in mod run-time sau utilizarea modului design-time sub Visual Studio • Tratarea automată a datelor lipsă – Empty point support • Manipulare de formule statistico-financiare • Facilități de tip copiere, ștergere, concatenare, filtrare etc. • Datele sunt organizate sub formă de serii statistice, fiecare serie fiind o colecție de puncte reprezentând cazuri (indivizi) • Fiecare punct conține: • Una sau mai multe valori Y care sunt de fapt valorile asociate cazului • O valoare opțională X care poate determina poziționarea pe axa X

  12. Conectarea se poate face atât run-time cât și design-time Sunt permise surse de date standard sau custom prin implementarea interfeței IEnumerable Surse standard: DataView, DataReader, DataSet, DataRow, DataColumn, Array, List, SqlCommand, OleDbCommand, SqlDataAdapter, OleDbDataAdapter Valorile lipsă sunt tratate prin utilizarea punctelor vide (empty point) utilizând valoarea medie sau utilizând valoarea 0:

  13. Adăugarea datelor prin metodele Add public int AddXY ( double xValue, double yValue ) public int AddXY ( Object xValue, params Object[] yValue ) public int AddY ( double yValue ) public int AddY ( params Object[] yValue ) Metodele intorc indexul elementului adăugat. (Exemplu: Column) Conectarea la masive public void DataBindXY ( IEnumerable xValue, params IEnumerable[] yValues ) public void DataBindXY ( IEnumerable xValue, string xField, IEnumerable yValue, string yFields ) public void DataBindY ( params IEnumerable[] yValue ) public void DataBindY ( IEnumerable yValue, string yFields ) (Exemplu: Bar)

  14. Conectarea la date memorate în fișiere CSV, Excel, Access public void DataBindXY ( IEnumerable xValue, string xField, IEnumerable yValue, string yFields ) Folosește mecanismul OleDb. Exemplu: Pie

  15. Construirea programatica a graficelor 1. Instantierea unui obiect Chart chart = new Chart(); 2. Stabilirea proprietatilor de design chart.BackImage = "img1.jpg"; chart.BorderlineColor = Color.Blue; chart.BorderlineDashStyle = ChartDashStyle.DashDot; chart.BorderlineWidth = 3; chart.BorderSkin.SkinStyle = BorderSkinStyle.Sunken; chart.Dock = System.Windows.Forms.DockStyle.Fill; ... 3. Creare si parametrizare titluri chart.Titles.Add("Ttitlul general"); chart.Titles[0].Font = new System.Drawing.Font ("Times New Roman",20, FontStyle.Bold); ...

  16. 4. Crearea si parametrizarea regiunilor - axe si proprietati ChartArea chartArea = new ChartArea(); chartArea.AxisX.Title = "Titlu axa X"; chartArea.AxisX.TitleFont = new System.Drawing.Font("Times New Roman", 14, FontStyle.Italic); // stabilire font pentru titlu axa chartArea.AxisY.Title = "Titlu axa Y"; chartArea.AxisY.TitleFont = new System.Drawing.Font("Times New Roman", 14, FontStyle.Italic); chartArea.AxisX.Interval = 1.0; // Stabilire interval de afisare a etichetelor chartArea.AxisX.LabelStyle.Angle = 90; // Stabilire unghi de afisare pentru etichete chartArea1.AxisY.IsStartedFromZero = false; // Valorile de pe axa X nu pleaca de la 0 5. Adaugare regiune la chart chart.ChartAreas.Add(chartArea); 6. Creare si adaugare legenda Legend legenda = new Legend(); chart.Legends.Add(legenda);

  17. 7. Crearea seriilor de date si stabilirea tipului de grafic Series series1 = new Series(); series1.Name = "Nume serie 1"; series1.ChartType = SeriesChartType.Bar; series1.IsValueShownAsLabel = true; // daca valorile sunt afisate in grafic Series series2 = new Series(); series2.Name = "Nume serie 2"; series2.ChartType = SeriesChartType.Bar; ... Diverse parametrizari: seriesN.MarkerStyle = MarkerStyle.Circle ; // Stabilire stiluri pentru puncte in graficele de tip Point seriesN.MarkerBorderColor = Color.Black; seriesN.Tooltip = "#VALX"; // stabilire tooltip la nivel de serie prin afisarea valorilor X seriesN.Points[i].Tooltip = "Mesaj punct"; // stabilire tooltip la nivel de punct seriesN.BorderWidth = 3; //Stabilire latime pentru linii

  18. 8. Legarea datelor (data binding) - exprima modul in care serile de date sunt construite din punct de vedere al valorilor Construire punct cu punct: for (int i = 0; i < labels.Length; i++) { series1.Points.AddXY(labels[i], xValues[i]); series2.Points.AddXY(labels[i], yValues[i]); } Construire serie in integralitate: series1.Points.DataBindXY(labels, xValues); series2.Points.DataBindXY(labels, yValues);

  19. Legarea la fisiere Excel String fisier = "Fisier.xls"; // Nume fisier Creare conexiune OLEDB: String stringCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fisier + ";Extended Properties=\"Excel 8.0\""; OleDbConnection con = new OleDbConnection(stringCon); con.Open(); Creare comanda OleDb pentru interogare: OleDbCommand myCommand = new OleDbCommand("Select * From [Sheet2$A1:V43]", con); Creare obiect reader: OleDbDataReader reader = myCommand.ExecuteReader();

  20. Exemplul 1. Conexiune Excel (extensii xls) string path = "Nume.xls"; string conexiune = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+";Extended Properties=\"Excel 8.0\""; OleDbConnection con = new OleDbConnection(conexiune); con.Open(); OleDbCommand cmd = new OleDbCommand("Select * From [NumeSheet$range]", con); OleDbDataReader reader = cmd.ExecuteReader(); // Prelucrare reader // Citirea din reader se face prin indecsii de coloane reader.Close(); con.Close();

  21. Binding: series1.Points.DataBindXY(reader, "Camp1", reader, "Camp2"); reader.Close(); reader = myCommand.ExecuteReader(); series2.Points.DataBindXY(reader, "Camp1", reader, "Camp3"); ... Inchidere reader si connection: reader.Close(); con.Close();

  22. Legarea la baze de date Access String path= "Fisier.mdb"; // Nume fisier Creare conexiune OLEDB: String stringCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path; OleDbConnection con = new OleDbConnection(stringCon); con.Open(); Creare comanda OleDb pentru interogare: OleDbCommand myCommand = new OleDbCommand("Select * From Tabela", con); sau OleDbCommand myCommand = new OleDbCommand("Select Camp1, Camp2, ... From Tabela", con);

  23. Creare obiect reader: OleDbDataReader reader = myCommand.ExecuteReader(); Legarea datelor se face prin reader (vezi Excel). Pot fi legate datele si direct prin chart: chart.DataBindTable(reader, "CampEticheta"); // Graficul va fi de tip implicit si va avea un numar de serii egal cu numarul de coloane investigate prin select mai putin campul de etichete Inchidere reader si connection (idem Excel)

  24. 9. Adaugarea seriilor de date chart.Series.Add(series1); chart.Series.Add(series2); ... 10. Adaugare chart la container containerCurent.Controls.Add(chart); containerCurent.Controls.AddRange(new System.Windows.Forms.Control[] { this.chart });

  25. Grafice statistice MCC ofera facilitati pentru reprezentarea unor indicatori statistici si analiza statistica la nivel grafic Indicatori double mean = chart.DataManipulator.Statistics.Mean(series.Name); double median = chart.DataManipulator.Statistics.Median(series.Name); double variance = chart.DataManipulator.Statistics.Variance(series.Name, true); Trasarea de linii suplimentare StripLine stripLine = new StripLine(); stripLine.BackColor = Color.FromArgb(255, 200, 200);// culoarea de umplere stripLine.IntervalOffset = offsetTrasare; // limita inferioara de trasare stripLine.StripWidth = latimeLinie;// latimea liniei stripLine.Text = "Media"; // text afisat pe linie chartArea.AxisY.StripLines.Add(stripLine);

More Related