J'ai généré des cartes utilisant Mscharart depuis un certain temps, mais je n'ai jamais créé plusieurs graphiques dans un seul objet graphique. Penser à cette tâche a révélé une lacune à ma connaissance.
Comment je pense à créer un graphique p>
La structure d'objet finit par ressemblant à ceci p> Autant que je me préoccupe dans le passé, le chartarea est tout simplement la zone que j'ai configuré le étiquettes et ce genre de chose. Pour ajouter un autre, je voudrais ajouter une autre série HardArea et une ou plusieurs séries. P> ___________________ Chart ___________________
/ / \ \
ChartArea0 ChartArea1 Series0 Series1
3 Réponses :
Les séries
sont associées à des zones de graphique tels que
Chart Chart0 = new Chart(); ChartArea ChartArea0 = new ChartArea("name"); Chart0.ChartAreas.Add(ChartArea0); Series Series0 = new Series(); Chart0.Series.Add(Series0); // link series to area here Series0.ChartArea = "name";
Les séries sont ajoutées aux graphiques, pas de ChariAreas. La troisième ligne doit être {objet graphique} .series.add (série0). MSDN .microsoft.com / fr-US / Bibliothèque / ...
Un graphique peut être divisé en plusieurs zones où une zone peut être un graphique à barres d'autre peut être un graphique à secteurs.
alors vous créez une série; Chaque série sera associée à une zone de graphique. Si vous créez 5 séries et Série associée1, Series2 et Series3 à Chartarea1, ces séries doivent être de même type de graphique compatible. sinon une erreur d'exécution se produira. Plusieurs séries dans la même zone de graphique peuvent avoir un composant d'axe X différent dans certains cas. Par exemple, dans le code suivant: Series1 comporte 3 points de données et série2 en 5, dans ce cas, Chartarea affichera les trois premières valeurs X à partir de Série1 et les deux valeurs x suivantes de série2. P> system.windows.forms.datavisualisation.charting.charting.chartTring.fr cart1 = nouveau system.windows.forms.datavisualisation.charting.charting.charting.chart ();
System.windows.forms.datavisualisation.charting.chartarea Chartarea1 = nouveau system.windows.froms.datavisualisation.charting.charitarea ();
System.windows.forms.datavisualisation.charting.chartarea Chartarea2 = nouveau system.windows.forms.datavisualisation.charting.charitarea ();
graphique1.chartareas.clear ();
graphique1.chatartareas.add (Chartarea1);
graphique1.chartareas.add (chartarea2); code> p>
graphique1.Series .Dégager();
graphique1.Series.add ("Series1");
graphique1.Series [0] .chatType = System.Windows.Forms.dataVisualization.Charting.SerieschatTtype.column;
Chart1. Series [0] .chattarea = Chart1.Chartareas [0] Nom; Code> P>
chart1.Series[0].Points.AddXY("Point1", 20);
chart1.Series[0].Points.AddXY("Point2", 50);
chart1.Series[0].Points.AddXY("Point3",30);
chart1.Series.Add("Series2");
chart1.Series[1].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Column;
chart1.Series[1].ChartArea = chart1.ChartAreas[0].Name;
chart1.Series[1].Points.AddXY("newname1", 10);
chart1.Series[1].Points.AddXY("newname2", 20);
chart1.Series[1].Points.AddXY("newname3", 30);
chart1.Series[1].Points.AddXY("newname4", 40);
chart1.Series[1].Points.AddXY("newname5", 50);
this.tabPage3.Controls.Add(chart1);
chart1.Dock = System.Windows.Forms.DockStyle.Fill;
Réponse précédente Brisons la largeur du graphique, cet exemple utilise des objets Elementposition, spécifiquement défini avec 100% (tous les NR sont% () Cet exemple: "Deux zones de graphique, divisée verticalement 80/20":
ElementPosition ePos = new ElementPosition(); ePos.Width = 100; ePos.Y = 0; ePos.X = 2; ePos.Height = 80; ElementPosition ePos2 = new ElementPosition(); ePos2.Width = 100; ePos2.Y = 80; ePos2.X = 2; ePos2.Height = 20; chartCandleStick.ChartAreas[0].Position = ePos; chartCandleStick.ChartAreas[1].Position = ePos2;