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 :

Histogramme-Ordre des couleurs


Sujet :

ODS et reporting

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 34
    Points : 20
    Points
    20
    Par défaut Histogramme-Ordre des couleurs
    Bonjour sas population

    J'ai un petit grand problème :

    Je crée un histogramme avec la PROC GCHART HBAR

    Tout vas bien sauf que l'ordre des couleurs n'est celui que je veux .


    voilà ce que j'ai:



    mais je voudrais l'ordre suivant :
    obleu foncé
    ocitron vert
    o bleu clair
    olavande


    Pour préciser je parle des couleurs au sein d'une barre

  2. #2
    Membre habitué
    Homme Profil pro
    Ingénieur d'études / Biostatisticien
    Inscrit en
    Décembre 2009
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études / Biostatisticien
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2009
    Messages : 354
    Points : 194
    Points
    194
    Par défaut
    Je crois que ce sont les options pattern1, pattern2, ... qui permettent de changer les couleurs directement pour les proc GCHART.

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    Oui ce sont ces options là que j'ai utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PATTERN1 COLOR=CXCC99FF;
    	PATTERN2 COLOR=CX3366FF;
    	PATTERN3 COLOR=CX99CC00;
    	PATTERN4 COLOR=CX333399; 
     
    *******************;
    *****Légende*******;
    *******************;
    	LEGEND1 VALUE=("Incident Non grave"  "Incident Grave" "Effet indésirable Non grave" "Effet indésirable grave"  )
    			ORDER=('inc_non_grv'  'inc_grv' 'eff_non_grv' 'eff_grv')
    			LABEL = none
    			SHAPE=bar(1.3,0.7);

  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    Donc voila je veux que "Incident Non grave" soit en bleu foncé etc.... comme je l'ai bien fait, par contre je veux changer l'ordre des couleurs dans les barres

  5. #5
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    A priori les numérotations de PATTERN suivent l'ordre alphabétique des modalités. Dans le code que tu montres, tu ne fais que les ré-ordonner au niveau de la légende. Pas pour SAS.
    Il faut donc énumérer tes PATTERN dans l'ordre des valeurs (formatées si tu as un format).
    Bon courage.
    Olivier

  6. #6
    Membre à l'essai
    Inscrit en
    Octobre 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    @Olivier :

    "Il faut donc énumérer tes PATTERN dans l'ordre des valeurs " j'ai pas compris cette idée, à quel niveau dois je faire ce changement??

  7. #7
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Ben je dirais qu'il faut que tu changes les 1, 2, 3 et 4 de tes PATTERN pour qu'ils suivent l'ordre des valeurs de ta variable SAS.
    Comme tes modalités sont 'inc_non_grv', 'inc_grv', 'eff_non_grv' et 'eff_grv', elles vont correspondre respectivement à PATTERN4, 3, 2 et 1.
    Donc tu inverses tous tes PATTERN (PATTERN4 --> PATTERN1, 3-->2, etc.) et c'est bon.
    Enfin j'espère...
    Bon courage.
    Olivier

  8. #8
    Membre à l'essai
    Inscrit en
    Octobre 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    En changant les num 1,2,3,4, ce qui change c'est juste les couleurs pour les modalités , genre incident grave devient bleu au lieu du vert etc...


    Moi je voudrais garder ces couleurs même, et changer leur ordre dans les barres

    j'espère que j'ai été claire !!

  9. #9
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Oups.
    Oui, oui, oui, ton besoin est clairement énoncé depuis le début, c'est moi qui suis parti sur une idée à côté de la plaque.
    Il faut que tu recodes ta variable SUBGROUP en numérique, de manière à avoir des valeurs croissantes (mettons, 1, 2, 3 et 4) dans l'ordre de bas en haut de tes barres.
    Est-ce que c'est bon cette fois ?
    Bon courage.
    Olivier

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    JE vois l'idée, mais rien ne change dans l'ordre, y'a que la legende qui change, je pense que je suis saturé, j'essairai demain


    Merci Olivier

  11. #11
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Points : 4 478
    Points
    4 478
    Par défaut
    Voilà un petit exemple qui force l'ordre des catégories. J'espère que cette fois j'ai compris le besoin !
    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
    DATA work.sales ;
      SET sashelp.prdsale ;
      SELECT (country) ;
        WHEN ("GERMANY") CatNum = 1 ;
        WHEN ("CANADA")  CatNum = 2 ;
    	OTHERWISE        CatNum = 3 ;
      END ;
    RUN ;
    PATTERN1 C=YELLOW ; /* Allemagne */
    PATTERN2 C=RED ;    /* Canada */
    PATTERN3 C=BLUE ;   /* Etats-Unis */
    LEGEND1 VALUE=("Allemagne"  "Canada" "Etats-Unis")
    		ORDER=(1 2 3)
    			LABEL = none
    			SHAPE=bar(1.3,0.7);
    PROC GCHART DATA=work.sales ;
      VBAR product / SUBGROUP=catNum SUMVAR=actual TYPE=SUM 
    				LEGEND=legend1 ;
    RUN ; QUIT ;
    Bon courage.
    Olivier

  12. #12
    Membre à l'essai
    Inscrit en
    Octobre 2011
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 34
    Points : 20
    Points
    20
    Par défaut
    MERCI OLIVIER,

    C'est reglé, SUPER.


    MERCI

  13. #13
    Rédacteur

    Homme Profil pro
    SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Inscrit en
    Avril 2009
    Messages
    2 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : SAS ALLIANCE SILVER. Consultant et formateur SAS et Cognos.
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 2 497
    Points : 6 064
    Points
    6 064
    Par défaut
    Pour ceux qui s'intéressent à ces trucs là, voilà une proposition via les ODS graphics.

    La SGRENDER utilise un style qu'il faudrait redéfinir à partir d'un existant. Dans ce cas, je change la couleur de GraphData1 et GraphData3. le n°2 est déjà bleu.

    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
    proc template; 
     
       define style styles.lemien;
       parent=styles.LISTING;
     
       class GraphData1 / 
         lineStyle = 1
         markerSymbol = "circle"
       color = CXFFFF00
       contrastColor = CX2A25D9;
     
       class GraphData3 / 
         lineStyle = 8
         markerSymbol = "X"
       color = CX0000FF
       contrastColor = CX01665E;
    end;
    run;
    Ensuite, le SGRENDER sur tes données :

    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
    proc template;
    define statgraph Graphique2;
    dynamic _ACTUAL _PRODUCT2 _CATNUM;
    begingraph;
       layout lattice / rowdatarange=data columndatarange=data rowgutter=10 columngutter=10;
          layout overlay;
             barchart x=_PRODUCT2 y=_ACTUAL / group=_CATNUM name='bar' barwidth=1.0 groupdisplay=Stack clusterwidth=1.0;
          endlayout;
       endlayout;
    endgraph;
    end;
    run;
     
    proc sgrender data=SASUSER.SALES template=Graphique2;
    dynamic _ACTUAL="ACTUAL" _PRODUCT2="PRODUCT" _CATNUM="CATNUM";
    run;
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

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

Discussions similaires

  1. [LibreOffice] Ordre des couleurs
    Par Ade14 dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 13/04/2015, 21h15
  2. Réponses: 0
    Dernier message: 07/04/2011, 11h45
  3. [Débutant] Addition d'histogrammes avec des couleurs
    Par n4pkin dans le forum MATLAB
    Réponses: 5
    Dernier message: 11/03/2010, 15h51
  4. [VxiR2] Graphique - Ordre des barres dans un histogramme à pourcentage
    Par ouistitis dans le forum Webi
    Réponses: 2
    Dernier message: 24/02/2010, 09h23
  5. choisir l'ordre des colonnes sur un histogramme vbar
    Par distro dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 08/02/2009, 22h32

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