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 :

trop de dates sur mon ascbisse [updated]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut trop de dates sur mon ascbisse [updated]
    Salut,

    Pour tracer mon graph, j utilise la subroutine suivante, Mais, je me retrouve avec une date en absisse pour chaque valeur que je souhaite tracer. (voir : http://www.tes-images.com/view.php?i...52949_plot.JPG)

    Si quelqu un pouvait m aider a "filtrer" l affichage de date en absisse, ca m aiderait bcp, car j y ai passé pas mal de temps sans succes (voir fin du code)...

    Merci



    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
    Private Sub Plot(ByVal aPercentorProbaDico As SortedDictionary(Of String, MyPercentorProbaWindowData), ByVal aPattern As MyPercentorProbaWindowData)
     
            'Initialisation
            If AxChart.Charts.Count > 0 Then
                AxChart.Charts.Delete(0)
            End If
            chrt = AxChart.Charts.Add()
            chrt.Type = ChartChartTypeEnum.chChartTypeLine
            chrt.HasTitle = True
            chrt.Title.Caption = "FAST FORWARD FORECAST SENARIOS"
            chrt.HasLegend = True
            chrt.Legend.Position = ChartLegendPositionEnum.chLegendPositionBottom
            chrt.HasAutoAspectRatio = True
            chrt.HasAutoChartDepth = True
            chrt.Border.Color = "#FFFBF0"
            chrt.PlotArea.Interior.Color = "#FFFBF0"
     
            Dim aSerieCollection As Integer = -1
            For Each aserie As String In aPercentorProbaDico.Keys
                aSerieCollection = aSerieCollection + 1
     
                Dim X(aPercentorProbaDico(aserie).CumDepths.Count) As String
                Dim Y(aPercentorProbaDico(aserie).CumDepths.Count)
     
                Dim index As Integer = 0
                Dim diffyearpredictiontimeserie As Integer = _StartDatePrediction.Year - aPercentorProbaDico(aserie).StartWindowDate.Year
                If aPattern Is Nothing Then
                    For Each adate As DateTime In aPercentorProbaDico(aserie).CumDepthsFitted.Keys
                        X(index) = CStr(adate.AddYears(diffyearpredictiontimeserie))
                        Y(index) = aPercentorProbaDico(aserie).CumDepthsFitted(adate)
                        index = index + 1
                    Next
                Else
                    Dim diffyearPatternTimeserie As Integer = aPattern.StartWindowDate.Year - aPercentorProbaDico(aserie).StartWindowDate.Year
                    For Each adate As DateTime In aPercentorProbaDico(aserie).CumDepthsFitted.Keys
                        X(index) = CStr(adate.AddYears(diffyearpredictiontimeserie))
                        'Y(index) = aPercentorProbaDico(aserie).CumDepthsFitted(adate)
                        Y(index) = aPattern.CumDepthsFitted(adate.AddYears(diffyearPatternTimeserie)) * aPercentorProbaDico(aserie).ExactValue / aPattern.ExactValue
                        index = index + 1
                    Next
     
                End If
     
                chrt.SeriesCollection.Add(aSerieCollection)
     
                chrt.SeriesCollection(aSerieCollection).Caption = CStr(aserie)
                chrt.SeriesCollection(aSerieCollection).SetData(ChartDimensionsEnum.chDimCategories, Convert.ToInt32(ChartSpecialDataSourcesEnum.chDataLiteral), Join(X, vbTab))
                chrt.SeriesCollection(aSerieCollection).SetData(ChartDimensionsEnum.chDimValues, Convert.ToInt32(ChartSpecialDataSourcesEnum.chDataLiteral), Join(Y, vbTab))
                'chrt.Axes(ChartDimensionsEnum.chD).NumberFormat = "dd/MM/yyyy"
                'chrt.Axes(ChartDimensionsEnum.chDimCategories).TickLabelUnitType = ChartAxisUnitTypeEnum.chAxisUnitDay
                ' chrt.Axes(ChartDimensionsEnum.chDimXValues).TickLabelUnitType = ChartAxisUnitTypeEnum.chAxisUnitMonth
                'chrt.Axes(ChartAxisPositionEnum.chAxisPositionCategory).HasAutoMinorUnit = True
     
     
     
            Next
     
     
        End Sub

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Vu la longueur du code j'avais la flème de le lire et j'ai donc regardé la capture d'écran que tu fournis (On préfère toujours regarder les images )
    Effectivement, y a un paquet de dates ...
    Ca serait peut-être plus sympa pour l'utilisateur d'avoir le rendu d'une seule date quand il balade sa souris sur les courbes ?
    Et si tu veux t'emmerder, quitte a mettre la date dans un label, un fond transparent avec la date qui suit le curseur de la souris ...

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Salut,

    merci d avoir pris la peine de repondre

    En fait, je suis quasiment sur qu il y a un moyen de grouper les dates d un axe avec ce genre de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    chrt.Axes(ChartDimensionsEnum.chD).NumberFormat = "dd/MM/yyyy"
    chrt.Axes(ChartDimensionsEnum.chDimCategories).TickLabelUnitType = ChartAxisUnitTypeEnum.chAxisUnitMonth
    Mais je ne sais pas pourquoi ... ca ne marche po

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    double post sry

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    resalut,

    Juste une petite reponse pour poster un code reduit qui me donne le meme probleme.

    screenshot : http://img379.imageshack.us/img379/5...nstitreyk9.jpg

    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
    Private Sub Plot()
     
            If AxChart.Charts.Count > 0 Then
                AxChart.Charts.Delete(0)
            End If
            chrt = AxChart.Charts.Add()
            chrt.Type = ChartChartTypeEnum.chChartTypeLine
     
            Dim X(365) As String
            Dim Y(365)
            Dim adate As Date = "31 dec 2007"
     
            For index As Integer = 1 To 365
                X(index) = CStr(adate.AddDays(index))
                Y(index) = index + 100
            Next
     
            chrt.SeriesCollection.Add(0)
            chrt.SeriesCollection(0).SetData(ChartDimensionsEnum.chDimCategories, Convert.ToInt32(ChartSpecialDataSourcesEnum.chDataLiteral), Join(X, vbTab))
            chrt.SeriesCollection(0).SetData(ChartDimensionsEnum.chDimValues, Convert.ToInt32(ChartSpecialDataSourcesEnum.chDataLiteral), Join(Y, vbTab))
     
        End Sub
    mon probleme est que sur l axe des abscisses, je ne voudrais pas afficher chaque jour, mais par exemple chaque mois ...

    Merci

    Slumpy

    PS : je joints aussi le projet reduit developpé avec VS2005
    Fichiers attachés Fichiers attachés

  6. #6
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    Salut,

    suis tjs sur mon probleme, mais j avance

    Si j ai bien compris comment ca marche, mon principal probleme faisant que je n arrivais pas a filtrer les dates etait que X etait defini comme string. Apparemment faut le laisser en objet.
    L autre point est que j ai viré Join(X, vbTab), et applique directement le vecteur X.

    Mon code actuel est donc le suivant :

    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
    Private Sub Plot()
     
            If AxChart.Charts.Count > 0 Then
                AxChart.Charts.Delete(0)
            End If
            chrt = AxChart.Charts.Add()
            chrt.Type = ChartChartTypeEnum.chChartTypeLineStackedMarkers
            AxChart.Charts(0).Axes(ChartAxisPositionEnum.chAxisPositionCategory).GroupingType = ChartAxisGroupingEnum.chAxisGroupingNone
     
            Dim X(13)
            Dim Y(13)
            Dim adate As Date = "01 dec 2007"
     
            For index As Integer = 0 To 13
                X(index) = adate.AddDays(index)
                Y(index) = index + 100
                Console.WriteLine("index: " & index & "X: " & CDate(X(index)).ToString("dd MMM yyyy") & "   Y: " & Y(index))
            Next
     
            chrt.SeriesCollection.Add(0)
     
            chrt.SeriesCollection(0).SetData(ChartDimensionsEnum.chDimCategories, ChartSpecialDataSourcesEnum.chDataLiteral, X)
            chrt.SeriesCollection(0).SetData(ChartDimensionsEnum.chDimValues, ChartSpecialDataSourcesEnum.chDataLiteral, Y)
     
            AxChart.Charts(0).Axes(ChartAxisPositionEnum.chAxisPositionCategory).GroupingType = ChartAxisGroupingEnum.chAxisGroupingManual
            AxChart.Charts(0).Axes(ChartAxisPositionEnum.chAxisPositionCategory).TickLabelUnitType = ChartAxisUnitTypeEnum.chAxisUnitMonth
            AxChart.Charts(0).Axes(AxChart.Constants.chAxisPositionCategory).GroupingUnit = 1
            AxChart.Charts(0).Axes(ChartAxisPositionEnum.chAxisPositionCategory).NumberFormat = "dd MMM yyyy"
     
        End Sub
    Si je modifie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AxChart.Charts(0).Axes(ChartAxisPositionEnum.chAxisPositionCategory).TickLabelUnitType = ChartAxisUnitTypeEnum.chAxisUnitMonth
    pour par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AxChart.Charts(0).Axes(ChartAxisPositionEnum.chAxisPositionCategory).TickLabelUnitType = ChartAxisUnitTypeEnum.chAxisUnitDay
    le graph va etre tracé avec une valeur par jour et non plus mois YOOUUUUPPIII.

    Sauf que maintenant j ai un probleme de date
    D apres mon code, je devrais avoir des valeurs entre 01 dec 2007 jusqu au 14 dec 2007. Mais je pense qu il se passe un mix entre mois et jour puisque mon graph est : http://www.tes-images.com/view.php?i...2_untitled.JPG

  7. #7
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    C quoi cette classe ChChart ?

  8. #8
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Par défaut
    salut,

    Merci de te pencher sur mon probleme.

    Public Interface ChChart
    Member of: Microsoft.Office.Interop.Owc11
    Ca reond a ta question ?

    Slumpy

Discussions similaires

  1. Afficher date de modification sur mon site
    Par loloxine dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 25/03/2010, 13h52
  2. [AC-2003] Trop de pages sur mon état
    Par bastien3117 dans le forum IHM
    Réponses: 4
    Dernier message: 25/08/2009, 12h38
  3. Réponses: 2
    Dernier message: 18/02/2007, 11h43
  4. la date et heure sur mon formulaire
    Par azde7015 dans le forum Access
    Réponses: 11
    Dernier message: 07/02/2006, 11h40
  5. svp un peu d'aide sur mon update, resumé simple en dessous
    Par hansaplast dans le forum Langage SQL
    Réponses: 11
    Dernier message: 14/11/2005, 11h14

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