Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > ODS et reporting
ODS et reporting Forum d'entraide sur les fonctionnalités de reporting de SAS : gérer les sorties et graphiques de SAS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/10/2011, 16h29   #1
Invité de passage
 
Inscription : octobre 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 34
Points : 4
Points : 4
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
kmel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h31   #2
Membre habitué
 
Homme Julien
Ingénieur d'études / Biostatisticien
Inscription : décembre 2009
Messages : 304
Détails du profil
Informations personnelles :
Nom : Homme Julien
Localisation : France

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

Informations forums :
Inscription : décembre 2009
Messages : 304
Points : 101
Points : 101
Je crois que ce sont les options pattern1, pattern2, ... qui permettent de changer les couleurs directement pour les proc GCHART.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h33   #3
Invité de passage
 
Inscription : octobre 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 34
Points : 4
Points : 4
Oui ce sont ces options là que j'ai utilisé

Code :
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);
kmel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h35   #4
Invité de passage
 
Inscription : octobre 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 34
Points : 4
Points : 4
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
kmel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h44   #5
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 828
Points : 2 828
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).
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h50   #6
Invité de passage
 
Inscription : octobre 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 34
Points : 4
Points : 4
@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??
kmel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h55   #7
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 828
Points : 2 828
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...
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 17h01   #8
Invité de passage
 
Inscription : octobre 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 34
Points : 4
Points : 4
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 !!
kmel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 17h15   #9
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 828
Points : 2 828
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 ?
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 17h57   #10
Invité de passage
 
Inscription : janvier 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 3
Points : 1
Points : 1
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
Kmel56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 08h39   #11
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 467
Points : 2 828
Points : 2 828
Voilà un petit exemple qui force l'ordre des catégories. J'espère que cette fois j'ai compris le besoin !
Code :
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 ;
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/10/2011, 10h35   #12
Invité de passage
 
Inscription : octobre 2011
Messages : 34
Détails du profil
Informations forums :
Inscription : octobre 2011
Messages : 34
Points : 4
Points : 4
MERCI OLIVIER,

C'est reglé, SUPER.


MERCI
kmel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 10h42   #13
Rédacteur
 
Homme Stéphane
Consultant et formateur SAS et Cognos
Inscription : avril 2009
Messages : 1 791
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Localisation : France, Yvelines (Île de France)

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

Informations forums :
Inscription : avril 2009
Messages : 1 791
Points : 4 012
Points : 4 012
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 :
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 :
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é !

Moteur de recherche dans les papiers SAS
datametric est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h47.


 
 
 
 
Partenaires

Hébergement Web