none
Marquer un point d'une chart C# RRS feed

  • Question

  • Bonjour, 

    j'ai besoin de démarquer un point de ma chart. 
    Au fait j'ai une chart avec Point comme Chart type. 
    Mon axe des X contient les ages des salariés 
    et l'axe des y les salaires annuels. 
    Ce que je veux faire au juste c'est mettre en évidence le point d'un salarié bien précis. 

    il faudra créer un datapoint avec les valeurs du salarié à mettre en évidence pour pouvoir le comparer avec les points figurant dans ma chart et ensuite changer la couleur de mon point pour dire que c'est le salarié que je veux démarquer des autres. 

    avez vous une idée de comment pourrais procéder à faire ceci en c# ? 
    lundi 23 juillet 2012 13:47

Réponses

  • Bonjour,

    Il suffit juste de créer 2 séries :

    • Une pour vos salaires annuels / ages des salariés.
    • Une pour le salarié précis.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse rainbow8927 samedi 28 juillet 2012 15:32
    lundi 23 juillet 2012 22:13
    Modérateur
  • Bonjour,

    dans votre exemple il est fait référence à une série "Montant(DHS)" qui n'est pas définie ? Peut être dans votre cas c'est elle qui pose problème.

    Pour le reste le code semble fonctionel et le résultat obtenu ne semble pas incohérent.

    Series ser1 = new Series("Montants", 10);
    
    ser1.ChartType = SeriesChartType.Point;
    
    List<int> ages = new List<int>(){30,40,50,60 };
    List<int> montants = new List<int>() { 300, 400, 500, 600 }; 
    
    Chart2.Series.Add(ser1);
    Chart2.Series["Montants"].Points.DataBindXY(ages, montants);// Sachant que ages et montants sont des collections List<int>
    
    Chart2.ChartAreas[0].AxisX.Title = "Age";
    Chart2.ChartAreas[0].AxisY.Title = "Montants";
    
    Chart2.Palette = ChartColorPalette.Chocolate;
    Chart2.Titles.Add("Position des salariés dans le nuage des points").TextStyle = TextStyle.Shadow;
    
    Chart2.Titles[0].Font = new System.Drawing.Font("Century Gothic", 10, System.Drawing.FontStyle.Bold);
    Chart2.Series["Montants"].IsValueShownAsLabel = true;
    
    
    //Série 2 Salarié
    
    String sal = "Salarié";
    Series serSal = new Series(sal, 10);
    serSal.ChartType = SeriesChartType.Point;
    
    int Age = 31;
    int agesalar = Convert.ToInt32(Age);
    int mont = 310;
    serSal.Points.AddXY(agesalar, mont);
    Chart2.Series.Add(serSal);
    
    

    graph obtenu

    Cordialement

    • Marqué comme réponse rainbow8927 samedi 28 juillet 2012 15:32
    mardi 24 juillet 2012 16:25
    Modérateur
  • Merci nikho pour ta réponse :)

    le problème est réglé. au fait c'était un conflit de type 

    dans la première série j'avais mis la list des ages en tant que string:)

    Cordialement


    rainbow

    samedi 28 juillet 2012 15:32

Toutes les réponses

  • Bonjour,

    Il suffit juste de créer 2 séries :

    • Une pour vos salaires annuels / ages des salariés.
    • Une pour le salarié précis.

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Marqué comme réponse rainbow8927 samedi 28 juillet 2012 15:32
    lundi 23 juillet 2012 22:13
    Modérateur
  • Bonjour Gilles ,

    Merci pour votre réponse.

    En effet j'ai essayé de faire une nouvelle série mais sur le graphe, l'ajout de la deuxième série avec le salarie bousille ma chart. (voir photo)

    Voici le résumé du code:

    //Série 1

             

            Series ser1 = new Series("Montants",10);

            ser1.ChartType = SeriesChartType.Point;


            Chart2.Series.Add(ser1);
            Chart2.Series["Montants"].Points.DataBindXY(ages, montants);// Sachant que ages et montants sont des collections List<int>

            Chart2.ChartAreas[0].AxisX.Title = "Age";
            Chart2.ChartAreas[0].AxisY.Title = "Montants";

            Chart2.Palette = ChartColorPalette.Chocolate;
            Chart2.Titles.Add("Position des salariés dans le nuage des points").TextStyle = TextStyle.Shadow;

            Chart2.Titles[0].Font = new System.Drawing.Font("Century Gothic", 10, System.Drawing.FontStyle.Bold);
            Chart2.Series["Montants(DHS)"].IsValueShownAsLabel = true;


    //Série 2 Salarié

            String sal = "Salarié";
            Series serSal = new Series(sal, 10);
            serSal.ChartType = SeriesChartType.Point;

            int agesalar = Convert.ToInt32(Age);
            int mont=2000;
            serSal.Points.AddXY(agesalar, mont);
            Chart2.Series.Add(serSal);
          
    Cordialement


    rainbow


    • Modifié rainbow8927 mardi 24 juillet 2012 13:27
    • Marqué comme réponse rainbow8927 samedi 28 juillet 2012 15:32
    • Non marqué comme réponse rainbow8927 samedi 28 juillet 2012 15:32
    mardi 24 juillet 2012 13:21
  • Bonjour,

    dans votre exemple il est fait référence à une série "Montant(DHS)" qui n'est pas définie ? Peut être dans votre cas c'est elle qui pose problème.

    Pour le reste le code semble fonctionel et le résultat obtenu ne semble pas incohérent.

    Series ser1 = new Series("Montants", 10);
    
    ser1.ChartType = SeriesChartType.Point;
    
    List<int> ages = new List<int>(){30,40,50,60 };
    List<int> montants = new List<int>() { 300, 400, 500, 600 }; 
    
    Chart2.Series.Add(ser1);
    Chart2.Series["Montants"].Points.DataBindXY(ages, montants);// Sachant que ages et montants sont des collections List<int>
    
    Chart2.ChartAreas[0].AxisX.Title = "Age";
    Chart2.ChartAreas[0].AxisY.Title = "Montants";
    
    Chart2.Palette = ChartColorPalette.Chocolate;
    Chart2.Titles.Add("Position des salariés dans le nuage des points").TextStyle = TextStyle.Shadow;
    
    Chart2.Titles[0].Font = new System.Drawing.Font("Century Gothic", 10, System.Drawing.FontStyle.Bold);
    Chart2.Series["Montants"].IsValueShownAsLabel = true;
    
    
    //Série 2 Salarié
    
    String sal = "Salarié";
    Series serSal = new Series(sal, 10);
    serSal.ChartType = SeriesChartType.Point;
    
    int Age = 31;
    int agesalar = Convert.ToInt32(Age);
    int mont = 310;
    serSal.Points.AddXY(agesalar, mont);
    Chart2.Series.Add(serSal);
    
    

    graph obtenu

    Cordialement

    • Marqué comme réponse rainbow8927 samedi 28 juillet 2012 15:32
    mardi 24 juillet 2012 16:25
    Modérateur
  • Merci nikho pour ta réponse :)

    le problème est réglé. au fait c'était un conflit de type 

    dans la première série j'avais mis la list des ages en tant que string:)

    Cordialement


    rainbow

    samedi 28 juillet 2012 15:32