8
votes

Création de plusieurs graphiques et la relation entre le graphique, la série, le chartarea

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>

  1. Créer un objet graphique LI>
  2. Ajouter un objet Chartarea à l'objet de graphique Li>
  3. créer des séries et ajouter des données li>
  4. Ajouter une série au graphique LI> ol>

    La structure d'objet finit par ressemblant à ceci p> xxx pré>

    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
    


0 commentaires

3 Réponses :


8
votes

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";


1 commentaires

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 / ...



5
votes

Un graphique peut être divisé en plusieurs zones où une zone peut être un graphique à barres d'autre peut être un graphique à secteurs.

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>

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>

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;


0 commentaires

0
votes

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;


0 commentaires