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

C@ina Messages postés 5 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 27 novembre 2018 - 26 nov. 2018 à 16:44
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 - 27 nov. 2018 à 13:03
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

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 nov. 2018 à 17:46
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
0
C@ina Messages postés 5 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 27 novembre 2018
27 nov. 2018 à 09:09
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
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
27 nov. 2018 à 13:03
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
0
Rejoignez-nous