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

Messages postés
5
Date d'inscription
jeudi 13 juin 2013
Dernière intervention
27 novembre 2018
- - Dernière réponse : Whismeril
Messages postés
12390
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
- 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
Afficher la suite 

Votre réponse

3 réponses

Messages postés
12390
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
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
Commenter la réponse de Whismeril
Messages postés
5
Date d'inscription
jeudi 13 juin 2013
Dernière intervention
27 novembre 2018
0
Merci
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
Commenter la réponse de C@ina
Messages postés
12390
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
14 décembre 2018
0
Merci
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
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.