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

VB.NET Discussion :

Chart - Trier selon Y


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2012
    Messages : 7
    Points : 9
    Points
    9
    Par défaut Chart - Trier selon Y
    Bonjour à tous,
    Voila tout est dans le titre. Dans mon programme, je réalise un chart en barres. Ce dernier est tracée à partir d'une série de point qui ne me permet pas d'ajouter les points dans l'ordre croissant dans un premier temps. (cette dernière s'implémente dans une boucle, lors de la lecture d'un datagridview... bref, elle ne peut pas être triée à la source).

    Je me retrouve alors avec un chart en barres avec des valeurs de Y en pourcentage pour chaque élément, et j'aimerai pourvoir représenter ces barres dans l'ordre décroissant. Je n'ai pas trouver la solution jusqu'à présent.

    Si vous avez une idée je suis preneur!

    Merci d'avance.

  2. #2
    Membre éprouvé Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Points : 1 118
    Points
    1 118
    Par défaut
    Salut,

    Entre les méthodes "Linq", l’implémentation du ICompare ou encore in simple foreach avec un trie à bulle, c'est pas ça qui manque ou alors j'ai mal compris ton besoin.
    "Le train de tes injures roule sur le rail de mon indifférence."

    "Monde de merde !!"

    Georges Abitbol.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    Salut,

    Si tu veux rajouter des points utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chart1.Series("maSerie").Points.Insert(maPosition, monPoint)
    Sinon tu es obligé de trier ton avant de créer tes points.

    Enfin, on ne connait pas le type de tes X. Car tu pourrais peu etre utiliser IsXValueIndexed.
    Regarde la documentation de Mr Philippe Lasserre,
    http://plasserre.developpez.com/cours/chart/
    Elle est très bien faite pour une utilisation standard.

  4. #4
    Membre éprouvé Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Points : 1 118
    Points
    1 118
    Par défaut
    Apparemment son soucis est le tri des donnés avant affichage.
    "Le train de tes injures roule sur le rail de mon indifférence."

    "Monde de merde !!"

    Georges Abitbol.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    C'est sur que ca aurait été un peux mieux avec son bout de code par ce que la c'est pas très clair.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Août 2012
    Messages : 7
    Points : 9
    Points
    9
    Par défaut
    Désolé pour le manque de précisions.

    Mes X sont des string (chaque point a un nom d'objet financier) et le Y représente la proportion de chacun de ces éléments dans mon datagridview (en pourcentage).

    Merci chaparo pour la doc mais je le connaissais déjà et malheureusement je n'ai pas trouvé solution à bon problème dans cet excellent document.


    Extrait du code :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
      For i = 0 To Form16.DataGridView1.RowCount - 2
     
     
     
                If Form16.DataGridView1.Rows(i).Cells(34).Value.ToString <> Form16.DataGridView1.Rows(i + 1).Cells(34).Value.ToString Then
     
     
                    Dim typ As String
                    typ = Form16.DataGridView1.Rows(i).Cells(34).Value.ToString.Substring(5, Form16.DataGridView1.Rows(i).Cells(34).Value.ToString.Length - 5)
     
                    Dim nbelmt As Integer
                    nbelmt = i + 1 - lastpos
     
                    Dim proptyp As Double
                    proptyp = Math.Round(nbelmt * 100 / Form16.DataGridView1.RowCount(), 2)
     
                    Select Case Form16.DataGridView1.Rows(i).Cells(34).Value.ToString.Substring(0, 3).ToString
     
                        Case "1.1", "1.2", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "3.1", "5.1", "5.3", "5.4", "5.6", "6.1", "6.2", "6.3", "7.1"
     
                            seriesb_1.Points.AddXY(typ, proptyp)
     
                            seriesb_1.Points(indexserie1).Label = proptyp & "%"
     
                            indexserie1 += 1
     
                        Case "4.1", "4.2", "4.3", "4.4", "5.2", "6.12", "6.4", "6.5", "6.6", "6.7", "6.8", "6.9"
                            seriesbb_1.Points.AddXY(typ, proptyp)
     
                            seriesbb_1.Points(indexserie2).Label = proptyp & "%"
     
                            indexserie2 += 1
     
                    End Select
     
     
                    lastpos = i + 1
     
     
     
                End If
     
    Next
     
            chart_allocglobdet.ChartAreas(0).Name = "chart1"
            chart_allocglobdet.ChartAreas(1).Name = "chart2"
     
     
            chart_allocglobdet.ChartAreas(0).AxisX.Title = "Poche Taux"
            chart_allocglobdet.ChartAreas(1).AxisX.Title = "Poche Actions"
     
     
     
     
            seriesb_1.Color = Color.FromArgb(33, 63, 129)
            seriesbb_1.Color = Color.FromArgb(33, 63, 129)
     
            chart_allocglobdet.Series.Add(seriesb_1)
            chart_allocglobdet.Series.Add(seriesbb_1)
     
            chart_allocglobdet.Series(0).ChartArea = "chart1"
            chart_allocglobdet.Series(1).ChartArea = "chart2"
     
            chart_allocglobdet.Series(0).IsXValueIndexed = True
            chart_allocglobdet.Series(1).IsXValueIndexed = True
     
            chart_allocglobdet.ChartAreas(0).AxisX.MajorGrid.Enabled = False
            chart_allocglobdet.ChartAreas(0).AxisX.Interval = 1
     
            chart_allocglobdet.ChartAreas(1).AxisX.MajorGrid.Enabled = False
            chart_allocglobdet.ChartAreas(1).AxisX.Interval = 1



    Quelques indications pour bien comprndre le code.

    En amont, mon datagrid est trié selon la colonne 34, qui comporte l'intitulé de l'objet financer (exemple : "5.3- Obligation aciton") d'ou la condition rows(i). ... <> rows(i+1). ....

    J'ai 2 séries chacune représenté dans un chartarea qui lui est propre, (l'une comprenant les objets de type taux, l'autre de type action) d'ou la différenciation de case à l'intérieur de la boucle.

  7. #7
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    Au lieu d'ecrire directement dans une serie (ligne 21 et 28) pourquoi ne stockerais tu pas ça dans un :
    Dim malist As New Dictionary(Of String, Integer)
    Par exemple

    Ce qui te permetterai de refaire un tri avant de les ajouter dans ton chart.

    Ps: pense a commenter ton code

Discussions similaires

  1. Trier selon le nombre de champs identiques
    Par figoro dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/10/2007, 14h07
  2. Trier selon une variable?
    Par flear dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/06/2007, 10h00
  3. Trier selon la date
    Par Michaël dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 15/08/2006, 12h27
  4. Réponses: 6
    Dernier message: 17/01/2006, 09h12
  5. [debutant][JTable] Trier selon une colonne
    Par yupa dans le forum Composants
    Réponses: 3
    Dernier message: 08/08/2005, 11h05

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