Mcc
-
Upload
jayme-howard -
Category
Documents
-
view
217 -
download
5
description
Transcript of Mcc
-
Microsoft Chart
Controls
-
Microsoft Chart Controls este un set de controale grafice care permit vizualizarea graficelor n aplicaii statistico-financiare complexe, att n ASP.NET ct i n Windows Forms
Avantaje/Faciliti:
Dezvoltare integrat n Visual Studio
Scalabilitate numr teoretic nelimitate de grafice-chart, titluri asociate, legende, adnotri, serii de date prelucrare, cazuri luate n considerare
Asigur suport pentru un numr 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
-
Faciliti specifice aplicaiilor 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
-
Chart
public class Chart : DataBoundControl, IPostBackEventHandler
-
Chart Areas Graficul Chart conine mai multe regiuni rectangulare n care se deseneaz cte 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, entiti). Fiecare serie este asociat unui tip de grafic.
public SeriesCollection Series { get; }
public class Series : DataPointCustomProperties
O serie contine obiecte DataPoint memorate ntr-o colecie DataPointCollection
Legend Graficul Chart poate contine un numr nelimitat de legende. Aceastea sunt memorate in colecia Legends
public LegendCollection Legends { get; }
public class Legend : ChartNamedElement
-
Titles - Controlul Chart conine o colecie de titluri, definite prin proprietatea Titles:
public TitleCollection Titles { get; }
public class Title : ChartNamedElement, IDisposable,
IChartMapArea
Clasa Title are proprieti care permit poziionarea titlului n raport cu graficul, coninutul text al titlului i modul de afiare (font, mrime etc.)
Annotations Adnotrile sunt introduse prin proprietatea de tip colecie Annotations:
public AnnotationCollection Annotations { get; }
Exist mai multe tipuri de adnotri: LineAnnotation, HorizontalLineAnnotation , VerticalLineAnnotation,
PolylineAnnotation, TextAnnotation etc.
Adnotarea se poate face in pozitii absolute, relativ la anumite puncte,
sau anumite arii prin proprietile Anchor
-
Sistemul de coordonate
Sistemul de coordonate este relativ la o
fereastra 100x100, avnd originea
stnga-sus
Coordonatele reale sunt aduse mai nti
n acest spaiu, dup care are loc transformarea de vizualizare
-
Elemente de design
Alegerea paletei de culori se
realizeaz prin intermediul proprietii Palette:
public ChartColorPalette Palette { get;
set; }
BrightPastel este paleta de culori implicit
-
Stabilirea culorii de fond se realizeaz cu ajutorul proprietilor:
BackColor stabilete culoarea de fond
BackGradientStyle sensul aplicrii gradientului de culoare (stnga-
dreapta, sus-jos etc.) Cele dou culori gradient sunt stabilite prin proprietile BackColor i BackSecondaryColor. Tipurile de gradient sunt:
BackImage stabilete imaginea de font. Proprietatea
BackgroundImageLayout stabilete modul de dispunere al imaginii (None,
Tile, Center, Stretch, Zoom), iar
BackImageAlignment, poziia (Top, Bottom, Center etc.)
-
Stabilirea bordurilor. Proprieti:
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;
-
Conectarea la sursele de date Data Binding
Microsoft Chart Controls asigur urmtoarele faciliti in lucrul cu date:
Adugare 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
Faciliti de tip copiere, tergere, concatenare, filtrare etc.
Datele sunt organizate sub form de serii statistice, fiecare serie fiind o colecie de puncte reprezentnd cazuri (indivizi)
Fiecare punct conine:
Una sau mai multe valori Y care sunt de fapt valorile asociate cazului
O valoare opional X care poate determina poziionarea pe axa X
-
Conectarea se poate face att run-time ct i design-time
Sunt permise surse de date standard sau custom prin
implementarea interfeei IEnumerable
Surse standard: DataView, DataReader, DataSet, DataRow,
DataColumn, Array, List, SqlCommand, OleDbCommand,
SqlDataAdapter, OleDbDataAdapter
Valorile lips sunt tratate prin utilizarea punctelor vide (empty point) utiliznd valoarea medie sau utiliznd valoarea 0:
-
1. Adugarea 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 adugat.
(Exemplu: Column)
2. 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)
-
Conectarea la date memorate n fiiere CSV, Excel, Access
public void DataBindXY ( IEnumerable xValue, string xField,
IEnumerable yValue, string yFields )
Folosete mecanismul OleDb.
Exemplu: Pie
-
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);
...
-
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);
-
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.MarkerSize = value; // Stabilire marime marker punct
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
-
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);
-
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();
-
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();
-
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);
-
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)
-
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 });
-
Grafice statistice
MCC ofera facilitati pentru reprezentarea unor indicatori statistici si
analiza statistica la nivel grafic precum:
Statistica descriptiva
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);
StripLine stripLine1 = new StripLine();
stripLine1.BackColor = Color.FromArgb(255, 200, 200);
stripLine1.IntervalOffset = mean - Math.Sqrt(variance);
double interval = 2 * Math.Sqrt(variance);
double latime = interval / 20;
-
StripLine stripLine2 = new StripLine();
stripLine2.IntervalOffset = mean-latime;
stripLine2.BackColor = Color.Blue;
stripLine2.Text = "Media";
stripLine2.StripWidth = 2*latime;
chartArea.AxisY.StripLines.Add(stripLine2);
StripLine stripLine3 = new StripLine();
stripLine3.IntervalOffset = median-latime;
stripLine3.BackColor = Color.Orange;
stripLine3.StripWidth = 2*latime;
stripLine3.Text = "Mediana";