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

ODS et reporting Discussion :

[PROC GPLOT] Axe des ordonnées, mauvais format


Sujet :

ODS et reporting

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Points : 80
    Points
    80
    Par défaut [PROC GPLOT] Axe des ordonnées, mauvais format
    Bonjour à tous,

    J'ai un petit problème d'affichage sur mon axe des ordonnées, en effet mon échelle est très grande elle commence par 40 000 000 et termine par 180 000 000. Or sur mon pdf, les chiffres sont affichés de cette manière (gain de place?) 2.32E+07 ce que je ne souhaite pas. J'ai essayé d'agrandir la région du graphique, d'augmenter la longueur et la largeur.

    Si quelqu'un à une option merci à lui, car je bloque vraiment, voici mon 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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    /*-- Objet 2: Graphique--*/
    GOPTIONS RESET=all
             FTITLE="Helvetica/bold"
             FTEXT="Helvetica"
             HTITLE=1
             HTEXT=4pct
    ;
     
    OPTIONS MISSING="";
    SYMBOL1 INTERPOL=JOIN
            HEIGHT=6pct
            VALUE=dot
            CV=orange
            LINE=1
            WIDTH=8
    ;
    SYMBOL2 INTERPOL=JOIN
            HEIGHT=6pct
            VALUE=dot
            CV=green
            LINE=1
            WIDTH=8
    ;
    LEGEND1 ACROSS=2
            SHAPE=BAR(2.5pct,2.5pct)
            VALUE=(h=4pct
                   JUSTIFY=center
                   tick=1 "Nb"
                   tick=2 "Nb-1"
                   )
            POSITION=(top right inside)
            LABEL=none
            FRAME
            CBORDER=BLACK
            OFFSET=(-2,)
    ;
     
    AXIS1 LABEL=none
          STYLE=1
          WIDTH=4
          MINOR=none
          ORDER=(40 000 000 TO 180 000 000 BY 20 000 000)
    	  ;
    AXIS2 LABEL=none
          STYLE=1
          WIDTH=4
          MINOR=none
          ORDER=(1 TO 12 BY 1)
    ;
     
    ODS REGION x=140 mm y=110 mm width=130 mm height=70 mm;
     
     
    DATA toto.temp;
          LENGTH function $6
                 text     $20
          ;
          RETAIN xsys
                 ysys     "2"
                 when     "a"
          ;
          SET toto.données;
          function="label";
          x=mois;
          xsys="2";
          ysys="2";
          when="a";
          DO;
                y=nb;
                position="3";
                color="orange";
                OUTPUT;
                y=nb-1;
                position="F";
                color="green";
                OUTPUT;
          END;
    RUN;
     
    PROC GPLOT DATA=toto.donnee;
          FORMAT mois mois.;
          PLOT nb * mois nb-1 * mois / VAXIS=AXIS1
                                            HAXIS=AXIS2
                                            OVERLAY
                                            NOFR
                                            LEGEND=LEGEND1
                                            VREF=40 000 000 TO 180 000 000 BY 20 000 000
                                            ANNOTATE=toto.temp
          ;
    RUN;
    QUIT;

    Merci à vous.

  2. #2
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    Bonjour,

    Je ne sais pas exactement quelles sont tes contraintes, en tout cas j'ai une solution simplifiée qui semble correspondre a ce que tu attends... Je n'utilise pas l'annotate (je ne vois pas trop ou tu veux en venir avec les nb et nb-1, tu peux en dire plus?)

    Manoutz
    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    data TEST;
    do X=40000 to 180000 by 1000;
    	Y=1+11*ranuni(-3);
    	output;
    end;
    run;
     
    /*-- Objet 2: Graphique--*/
    GOPTIONS RESET=ALL
             FTITLE="Helvetica/bold"
             FTEXT="Helvetica"
             HTITLE=1
             HTEXT=4pct
    ;
     
    OPTIONS MISSING="";
    SYMBOL1 INTERPOL=JOIN
            HEIGHT=6pct
            VALUE=dot
            CV=orange
            LINE=1
            WIDTH=8
    ;
    SYMBOL2 INTERPOL=JOIN
            HEIGHT=6pct
            VALUE=dot
            CV=green
            LINE=1
            WIDTH=8
    ;
    LEGEND1 ACROSS=2
            SHAPE=BAR(2.5pct,2.5pct)
            VALUE=(h=4pct
                   JUSTIFY=center
                   tick=1 "Nb"
                   tick=2 "Nb-1"
                   )
            POSITION=(top RIGHT inside)
            LABEL=none
            FRAME
            CBORDER=BLACK
            OFFSET=(-2,)
    ; 
     
    AXIS1 LABEL=none
          STYLE=1
          WIDTH=4
          MINOR=none
          ORDER=(40 000 000 TO 180 000 000 BY 20 000 000)
    	  ;
    AXIS2 LABEL=none
          STYLE=1
          WIDTH=4
          MINOR=none
          ORDER=(1 TO 12 BY 1)
    ;
     
    /*ODS REGION x=140 mm y=110 mm width=130 mm height=70 mm;
     
     
    DATA toto.temp;
          LENGTH FUNCTION $6
                 text     $20
          ;
          RETAIN xsys
                 ysys     "2"
                 when     "a"
          ;
          SET toto.données;
          FUNCTION="label";
          x=mois;
          xsys="2";
          ysys="2";
          when="a";
          DO;
                y=nb;
                position="3";
                color="orange";
                OUTPUT;
                y=nb-1;
                position="F";
                color="green";
                OUTPUT;
          END;
    RUN; */
     
    ods pdf file="C:\test.pdf";
    PROC GPLOT DATA=TEST;
          /*FORMAT mois mois.; */
          PLOT X*Y / VAXIS=AXIS1
                                            HAXIS=AXIS2
                                            /*OVERLAY
                                            NOFR */
                                            LEGEND=LEGEND1
                                            /*VREF=40 000 000 TO 180 000 000 BY 20 000 000
                                            /*ANNOTATE=toto.temp*/
          ;
    RUN;
    QUIT;
    ods pdf close;

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Points : 80
    Points
    80
    Par défaut
    Tout à d'abord merci à toi Manoutz.

    Dans ton exemple tu teste un graphique dont l'axe des ordonnées est situé entre 40 000 à 180 000 donc là cela s'affiche très bien mais ce que je souhaite c'est multiplier par 1000 donc une échelle entre 40 000 000 et 180 000 000 et le problème apparait.

    SAS me fait un axe des ordonnées avec une échelle entre 4.00E+07 et 1.80E+08
    des chiffres incompréhensibles.

    N.B: Mon histore de nb et nb-1 est tout simplement mes variables où je récupère mes valeurs.

    Merci

  4. #4
    Membre chevronné
    Homme Profil pro
    Biostatisticien
    Inscrit en
    Juin 2009
    Messages
    1 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 206
    Points : 1 868
    Points
    1 868
    Par défaut
    Autant pour moi...

    ca marche en appliquant un format:

    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
    DATA TEST;
    do X=40000000 TO 180000000 BY 1000000;
    	Y=1+11*ranuni(-3);
    	X2=put(X,9.);
    	output;
    end;
    run;
     
    proc format;
       value copied
          40000000  = "40000000"
          120000000 = "120000000";
    run;
     
     
    GOPTIONS RESET=ALL;
     
    OPTIONS MISSING=""  orientation=landscape;
     
    ods pdf file="C:\test.pdf";
    PROC GPLOT DATA=TEST;
          FORMAT X copied.; 
          PLOT X*Y / VAXIS=AXIS1
                                            HAXIS=AXIS2
     
    RUN;
    QUIT;
    ods pdf close;
    Je n'ai pas spécifié toutes les options de ton graphique mais je ne vois pas pourquoi ca ne fonctionnerait pas..

    A noter, il suffit de spécifier seulement deux (voire une?) valeur du format pour que sas soit capable d'interpréter toutes les valeurs... Les feignants apprécieront!

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Points : 80
    Points
    80
    Par défaut
    Super Manoutz,

    ça marche impec cette histoire de format que je n'utilise pas assez!!!

    P.S: Je confirme une seule valeur suffit à mettre dans le format pour tout prendre en compte....


    Encore merci.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/10/2013, 08h20
  2. [PROC GPLOT] axe des abscisses coupe l'axe des ordonnées en 0
    Par perloub dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 02/08/2010, 16h20
  3. Réponses: 2
    Dernier message: 23/08/2007, 09h26
  4. Réponses: 7
    Dernier message: 17/05/2007, 17h03
  5. Modifier le Mini et le maxi de l'axe des ordonnées
    Par Jeannot45 dans le forum Access
    Réponses: 2
    Dernier message: 04/11/2005, 15h49

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