Répétition de séries sur un graphique c#

Signaler
Messages postés
5
Date d'inscription
jeudi 13 juin 2013
Statut
Membre
Dernière intervention
27 novembre 2018
-
Messages postés
15931
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 mai 2021
-
Bonjour,


j'aimerai savoir comment je peux faire pour éviter la superposition des séries de mon graphique à chaque clique sur visual studio 2015 sous c#.

En fait, j'ai crée un bouton sur mon formulaire de telle sorte que, à chaque fois que l'on clique sur ce bouton, un graphique apparaît. Ce qui a été fait. Le souci est que, à chaque fois qu'on reclique sur le bouton, la même série se répète sur le graphique. Or, je voudrais qu'à chaque clique sur le bouton, une série unique apparaît sur le graphique.

J'ai besoin d'aide svp. Si quelqu'un a une solution ou une idée elle sera la bienvenue.

Merci

3 réponses

Messages postés
15931
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 mai 2021
545
Bonjour

dans ma boule de cristal, il me semble qu'à la ligne 227, il manque un ;

Pour toute réponse sérieuse, il nous faut le code de ton bouton (pour commencer).
Voir ici comment poster un code lisible et exploitable https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Messages postés
5
Date d'inscription
jeudi 13 juin 2013
Statut
Membre
Dernière intervention
27 novembre 2018

Bonjour,

Avant de poster le code je voudrais vous présenter le contexte de ce que je suis entrain de faire et apporter quelques éclaircissements. Je tiens à préciser que je suis encore débutante concernant le développement et précisément avec C#.

De façon plus générale, je suis entrain de développer un module d'analyse statistique (une analyse avec des graphes, des histogrammes etc.) dans une application.

L'utilisateur fait le choix de l'article à analyser (ici il s'agit d'un moule) dans un combobox. Avant, il devrait renseigner des paramètres "test", "période". Si les paramètres sont bien renseignés, il affiche le graphe. Sinon, il renvoie des messages d'erreurs.

Voici un screenshot :


Voilà mon code :
 
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
            if (radioButton1.Checked)
                {
 
                    DateTime deb = DateTime.Parse(dateTimePicker5.Text);
                    DateTime fin = DateTime.Parse(dateTimePicker4.Text);
 
                    TimeSpan diff = fin - deb;
 
 
                    int diff1 = (int)diff.TotalHours;
 
                if (diff1 <= 0)
                {
                    MessageBox.Show("Rentrez une heure de début inférieure à l'heure de fin !");
                }
                else
                {
                    chart1.Series["les valeurs du poids"].Points.AddXY("00h", 25);
                    chart1.Series["les valeurs du poids"].Points.AddXY("01h", 33);
                    chart1.Series["les valeurs du poids"].Points.AddXY("02h", 50);
                    chart1.Series["les valeurs du poids"].Points.AddXY("03h", 10);
                    chart1.Series["les valeurs du poids"].Points.AddXY("04h", 5);
                    chart1.Series["les valeurs du poids"].Points.AddXY("05h", 100);
                }
 
                }
                else         
                {
                    MessageBox.Show("Sélectionnez un test, vérifiez la période et resélectionnez le moule de votre choix");
                }
 
 
 
            }




Lorsque je reclique sur "moule1", le graphe se répète:




Caina
Messages postés
15931
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 mai 2021
545
Bonjour

Quelques erreurs à corriger:
  • Le but d’un DateTimePicker est de sélectionner une date, donc il retourne dirctement un DateTime par sa propriété Value. Donc pas besoin de parser la propriété Text.
  • Text);
     
                        TimeSpan diff = fin - deb;
     
     
                        int diff1 = (int)diff.TotalHours;
     
                    if (diff1 <= 0)
    Le type DateTime est prévu pour gérer à peu près tout ce qui concerne le temps. Il est donc capable tout seul de savoir si l’un est plus ancien que l’autre, ceci
    if(fin <= deb)
    est économe en lignes de code et en temps d’exécution, c’est même plus logique à lire.


Ce 2eme point fait partie des bases de la programmation objet. Débuter n’est pas un problème, mettre la charrue avant les boeufs en est un.
Je te conseille de mettre ton projet quelques jours de côté, le temps de suivre ce cours en ligne http://tahe.developpez.com/dotnet/csharp/ il te donnera de bonne bases pour pouvoir reprendre ton projet.


Pour ton problème à proprement parlé, ici
else
                {
                    chart1.Series["les valeurs du poids"].Points.AddXY("00h", 25);
                    chart1.Series["les valeurs du poids"].Points.AddXY("01h", 33);
                    chart1.Series["les valeurs du poids"].Points.AddXY("02h", 50);
                    chart1.Series["les valeurs du poids"].Points.AddXY("03h", 10);
                    chart1.Series["les valeurs du poids"].Points.AddXY("04h", 5);
                    chart1.Series["les valeurs du poids"].Points.AddXY("05h", 100);
                }
A chaque click, tu ajoutes des valeurs, sans effacer les précédentes.
Ça fait longtemps que je ne fais plus de charts. Il faut soit que tu effaces tous les points, soit que tu supprime la série et que tu en recrées une