IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

faire un graphique en utilisant les valeurs d'un datagridview


Sujet :

C#

  1. #61
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 48
    Points : 1
    Points
    1
    Par défaut
    merci ça marche il me reste plus qu'a faire des graphique ..
    ce matin j'ai commencé a regarder comment faire j'ai vu plusieurs tuto ou il utilise l'outils "chart" qui est dans la rubrique "données" mais moi je ne sais pas si c'est du a la version de visual studio ?

  2. #62
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Chart est en effet, un composant de la catégorie "Data".
    Il suffit de le poser sur la fiche et de définir les séries.
    Puis par code, tu lui affecte le DataSource de la même manière que pour la grille.

    Le code suivant montre l'alimentation des données d'un composant Chart nommé chart1 et la création de séries à la volées concernant les température intérieure, extérieure et de celle de la batterie.
    Tu n'est pas obligé de créer les séries par code.
    Tu peux bien évidemment te servir de l'interface de Visual Studio pour créer celles qui t'intéressent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    string path = "C:/Users/Lucas/Documents/test.csv";
    chart1.DataSource = DataLoader.Load(path);
    chart1.Series.Clear();
    chart1.Series.Add(
        new Series()
        {
            XValueMember = "Heure",
            YValueMembers = "TemperatureInterieur",
            ChartType = SeriesChartType.Line,
            IsVisibleInLegend = true,
            IsValueShownAsLabel = true,
            LegendText = "Température intérieure"
        });
     
    chart1.Series.Add(
        new Series()
        {
            XValueMember = "Heure",
            YValueMembers = "TemperatureExterieur",
            ChartType = SeriesChartType.Line,
            IsVisibleInLegend = true,
            IsValueShownAsLabel = true,
            LegendText = "Température extérieure"
        });
     
    chart1.Series.Add(
        new Series()
        {
            XValueMember = "Heure",
            YValueMembers = "TemperatureBatterie",
            ChartType = SeriesChartType.Line,
            IsVisibleInLegend = true,
            IsValueShownAsLabel = true,
            LegendText = "Température batterie"
        });

  3. #63
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 48
    Points : 1
    Points
    1
    Par défaut
    Nom : data.png
Affichages : 73
Taille : 9,0 Ko
    pourquoi je n'ai pas chart dans data ?

  4. #64
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Ajoute une référence à System.Windows.Forms.DataVisualization.
    S'il n'apparait pas, quitte Visual Studio et relance le

  5. #65
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 48
    Points : 1
    Points
    1
    Par défaut
    ça me met :

    Le nom de type ou d'espace de noms 'DataVisualization' n'existe pas dans l'espace de noms 'System.Windows.Forms' (vous manque-t-il une référence d'assembly*?)

  6. #66
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Tout est dit :
    vous manque-t-il une référence d'assembly

    A mon avis, tu as ajouté un "using" et non une référence.
    https://docs.microsoft.com/fr-fr/vis...r?view=vs-2022

  7. #67
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 899
    Points : 1 916
    Points
    1 916
    Par défaut
    Citation Envoyé par lucascsharp Voir le message
    Oui mais justement la ligne qui met indiqué lorsque ça plante est celle que j'avais partagé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                        listdedonnees.Add(new Donnees {Date = DateTime.ParseExact(rowData[0], "dd:MM:yyyy", CultureInfo.InvariantCulture), Heure = DateTime.Parse(rowData[1]), TemperatureInterieure = Double.Parse(rowData[2]), TemperatureExterieure = Double.Parse(rowData[3]), HumiditeInterieure = Double.Parse(rowData[4]), HumiditeExterieure = Double.Parse(rowData[5]), DirectionDuVent = Double.Parse(rowData[6]), VitesseDuVent = Double.Parse(rowData[7]), Enssolleillement = Double.Parse(rowData[8]), TemperatureBatterie = Double.Parse(rowData[9]), TensionBatterie = Double.Parse(rowData[10]) }); ;
    Pièce jointe 618188

    J'aurais bien aimé utiliser directement le ParseExact parce que si je met juste un .Parse sur la colonne de l'heure j'ai la date d'aujourd'hui puis l'heure qui est indiqué sur mon csv
    En plus du 3ème "d" que popo avait signalé, pourquoi le format comporte-t-il des ":" au lieu de "/" pour les séparateurs d'éléments de date ?

  8. #68
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 48
    Points : 1
    Points
    1
    Par défaut
    mais le problème c'est que j'ai pas l'onglet assembly ou normalement on trouve DataVisualization
    Nom : assem.png
Affichages : 67
Taille : 45,9 Ko

  9. #69
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 899
    Points : 1 916
    Points
    1 916
    Par défaut
    Je pense qu'il te faut l'installer à partir du package Nuget. Attention, il est en préversion, sur la fenêtre de gestion des packages Nuget de Visual Studio il te faudra cocher la case "Inclure la version préliminaire".

  10. #70
    Membre habitué
    Homme Profil pro
    Passioné ...
    Inscrit en
    Juillet 2020
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Passioné ...
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2020
    Messages : 145
    Points : 158
    Points
    158
    Par défaut
    Concernant l'absence de Chart, n'aurais tu pas fait la même bévue que moi dernièrement ?
    https://www.developpez.net/forums/d2...ntrol-disparu/

  11. #71
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Si tu travailles en .Net Core, il faut passer par les nuget comme l'a suggéré Noxen.

  12. #72
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 48
    Points : 1
    Points
    1
    Par défaut
    ah oui en effet mon projet n'est pas en .Net j'en ai fais un nouveau et j'ai fais des copié coller ..

    Du coup j'ai réussi a faire un graphique mais je voudrais savoir si c'était possible de prendre par exemple que les données du dernier jours et pas toute les valeurs qui sont avant ?

  13. #73
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Tu devrais pouvoir t'en sortir avec quelques requêtes Linq.

    Méthode Sort pour trier la liste sur la propriété Date.
    Méthode Last pour récupérer le dernier enregistrement sur lequel tu récupère la date.
    Méthode Where pour effectuer un filtre sur la propriété Date.
    Et enfin méthode ToList pour affecter au DataSource du graphique.

  14. #74
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 48
    Points : 1
    Points
    1
    Par défaut
    dans l'idée c'est comme on avait fait ?
    je dois utiliser les requêtes linq puis faire une liste et avec la liste faire mon graph c'est ça ?

  15. #75
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 48
    Points : 1
    Points
    1
    Par défaut
    mais est ce que avec cette méthode je pourrais afficher tout le temps le dernier jours ? admettons que j'ai 10 valeurs de température humidité etc par jour dans mes graphique je pourrais avoir uniquement les 10 derniere ? car mon csv est mis à jour toute les heures, j'ai une nouvelle donnée de temperature humidite etc

    je voulais savoir aussi si c'etait possible d'inverser l'affichage du datagridview pour faire en sorte que les plus vieille données s'affiche en bas et dès qu'il y en a une nouvelle elle se mette sur la première ligne pour eviter de descendre super bas pour voir les données du jours

  16. #76
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    DataLoader.Load lit systématiquement le fichier CSV. Donc s'il a changé, cela chargera les dernières données.

    Les requêtes linq vont servir à trier et filtrer les données renvoyées par DataLoader.Load.
    A la fin le ToList va créer une copie des éléments que tu auras triés et filtrés. Donc puisque t'es données seront à jour et que tu les auras triées et filtrées par date, alors ton graphique présentera uniquement ces données.

    Pour la afficher les données triées par date dans ta grille. C'est le même principe. Il faut appeler la méthode Sort avant d'affecter le DataSource.

  17. #77
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 48
    Points : 1
    Points
    1
    Par défaut
    classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listDate.add(new Date { Date = Date });

    list :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     List<Donnees> sortdate = listdedonnees.orderBy(o=>o.OrderDate).ToList();
    j'ai vu un exemple ou il proposait de faire ça mais du coup si je fais comme ça je dois créer une nouvelle classe pour faire une liste juste avec la date ?

    parce que la je peux pas directement utiliser les liste qu'on avait fait si ? parce que si j'utilise la liste de la date elle va se modifier et du coup dans mon datagridview je n'aurais pas toutes les dates de ce que j'ai compris

  18. #78
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Encore une fois DataLoader.Load va lire ton CSV et renvoyer une nouvelle liste avec les nouvelles données.

    La liste chargée depuis la fenêtre du graphique peut paraître identique à celle chargée depuis la fenêtre de la grille mais cela ne signifie PAS que c'est la même. Il serait temps que tu assimiles les notions de POO élémentaires...

    Et pourquoi veux-tu créer une liste de dates ?

  19. #79
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2022
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2022
    Messages : 48
    Points : 1
    Points
    1
    Par défaut
    je met les commande de linq directement dans le dataloader ou dans une form ?

  20. #80
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Il ne faut PAS mettre ces requêtes linq dans DataLoader.Load

    Il faut les mettre uniquement où elles sont nécessaires.

Discussions similaires

  1. Utiliser les valeurs d'une requete dans une autre requete ?!
    Par nekro65 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/03/2009, 11h16
  2. Graphique utilisant les valeurs d'une Listbox
    Par fermat dans le forum Débuter
    Réponses: 2
    Dernier message: 19/09/2008, 12h21
  3. Faire une moyenne en ignorant les valeurs nulles
    Par Giansolo dans le forum MATLAB
    Réponses: 2
    Dernier message: 08/06/2007, 14h38
  4. Réponses: 1
    Dernier message: 21/12/2006, 11h17
  5. Réponses: 5
    Dernier message: 05/10/2006, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo