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

Windows Forms Discussion :

C#, composant Chart, Type DateTime sur l'axe des X, ne pas prendre tous les jours du calendrier


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2020
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2020
    Messages : 30
    Points : 17
    Points
    17
    Par défaut C#, composant Chart, Type DateTime sur l'axe des X, ne pas prendre tous les jours du calendrier
    Bonjour,

    J'ai une difficulté avec le composant Chart.
    J'ai une collection de points avec un type DateTime en X et ma collection a volontairement des jours qui sont absents.
    Je précise que j'ai précisé le type "DateTime" dans le control pour l'axe des X car c'est pratique pour d'autres aspects.

    Par exemple, ma collection contient 4 points à afficher avec un "trou" au milieu (j'ai supprimé 2 éléments de la collection) :

    (...)
    series1.Points.AddXY(new DateTime(2003, 1, 3), 55);
    series1.Points.AddXY(new DateTime(2003, 1, 4), 34);

    //series1.Points.AddXY(new DateTime(2003, 1, 5), 32);
    //series1.Points.AddXY(new DateTime(2003, 1, 6), 28);

    series1.Points.AddXY(new DateTime(2003, 1, 7), 28);
    series1.Points.AddXY(new DateTime(2003, 1, 8), 28);
    (...)

    Le control Chart affiche toujours les 6 valeurs en X (vide en Y) alors que je voudrais qu'il affiche exactement le contenu de ma collection, c'est à dire 4 valeurs accolées donc sans avoir un vide au milieu et que le 07/01/2003 arrive juste après le 04/01/2003.
    En d'autres termes, le control Chart m'impose le calendrier pour l'axe des X, alors que je voudrais qu'il prenne ma collection.

    Est-ce que c'est possible et quel est le paramètre du control Chart pour cela svp ?

    Si besoin, voici le code pour faire des essais et une image :

    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
     
     
    private void Form1_Load(object sender, EventArgs e)
            {
                // Create Chart Area
                ChartArea chartArea1 = new ChartArea();
     
                // Add Chart Area to the Chart
                chart1.ChartAreas.Add(chartArea1);
     
                // Instanciation series avec Name
                Series series1 = new Series("Myserie");
     
                // Ajouter des points dans la series
                series1.XValueType = ChartValueType.DateTime;
     
                series1.Points.AddXY(new DateTime(2003, 1, 1), 34);
                series1.Points.AddXY(new DateTime(2003, 1, 2), 24);
                series1.Points.AddXY(new DateTime(2003, 1, 3), 55);
                series1.Points.AddXY(new DateTime(2003, 1, 4), 34);
                //series1.Points.AddXY(new DateTime(2003, 1, 5), 32);
                //series1.Points.AddXY(new DateTime(2003, 1, 6), 28);
                series1.Points.AddXY(new DateTime(2003, 1, 7), 28);
                series1.Points.AddXY(new DateTime(2003, 1, 8), 28);
                series1.Points.AddXY(new DateTime(2003, 1, 9), 28);
                series1.Points.AddXY(new DateTime(2003, 1, 10), 28);
                series1.Points.AddXY(new DateTime(2003, 1, 11), 28);
                series1.Points.AddXY(new DateTime(2003, 1, 12), 28);
     
                // Ajouter la series au chart
                chart1.Series.Add(series1);
     
                // Style colomn
                chart1.Series[0].ChartType = SeriesChartType.Column;
            }
    Nom : 2.png
Affichages : 236
Taille : 18,0 Ko

    Merci pour votre aide

  2. #2
    Membre à l'essai
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2020
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2020
    Messages : 30
    Points : 17
    Points
    17
    Par défaut
    J'ai trouvé. Je le mentionne au cas où cela pourrait servir à quelqu'un.

    Il s'agit de la propriété "IsXValueIndexed" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chart1.Series(0).IsXValueIndexed = true;
    Dans ce cas, ce sont les dates de la collection qui sont prises en compte et il n'y a plus de vide aux jours sans valeur.


    Merci à ceux qui ont cherché.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VS2013 - CHART - Pb affichage sur l'axe des X
    Par guilld dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/01/2016, 16h39
  2. Réponses: 2
    Dernier message: 19/12/2007, 18h25
  3. Réponses: 1
    Dernier message: 14/06/2007, 22h37
  4. Réponses: 1
    Dernier message: 24/05/2007, 17h02
  5. [excel]échelle log sur l'axe des X
    Par breizhou dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/07/2006, 18h49

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