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 26/10/2011, 10h40   #1
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
Par défaut [RTF] Mise en page de plusieurs boxplots : titre et taille figure

Bonjour, j'essai d'imprimer sur une même page word plusieurs boxplots avec leur titre respectif. Le souci c'est que je n'arrive à imprimer qu'un seul titre par page... ce qui est assez ridicule...


Voici le code que dont je me sers pour imprimer deux boxplots:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
PROC SORT DATA = TRY2;
BY Statut;
RUN;
 
GOPTIONS RESET = ALL;
 
ODS RTF BODY = "/home/public/test.rtf" STARTPAGE = NO;
 
ODS GRAPHICS ON;
TITLE 'test1';
PROC BOXPLOT DATA = TRY2;
PLOT CV1 * Statut / BOXSTYLE = SCHEMATIC NOHLABEL;
INSETGROUP min Q2 max mean std;
RUN;
 
TITLE 'test2';
PROC BOXPLOT DATA = TRY2;
PLOT CV2 * Statut / BOXSTYLE = SCHEMATIC NOHLABEL;
INSETGROUP min Q2 max mean std;
RUN;
ODS GRAPHICS OFF;
 
ODS RTF CLOSE;

J'aimerais tout simplement savoir quel(s) option(s) utiliser pour pouvoir imprimer un titre par figure?

De plus comment fait-on pour régler la taille des figures sur chaque page?

En vous remerciant d'avance.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 12h18   #2
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
Julien,

Il nous faudrait la version de ton SAS car à partir de la 9.1 l'ODS graphics permet de réaliser des choses assez facilement. Et chaque version supérieure en permet d'autres etc ...
__________________
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 00
Vieux 27/10/2011, 16h29   #3
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
Salut Stéphane, j'ai la version 9.2 de SAS.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h32   #4
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
Bonjour Julien.
Si tu faisais du SAS/GRAPH traditionnel sans activer ODS GRAPHICS, tu n'aurais pas ce souci : les titres iraient directement dans les images.
Pour autant que je sache, les options traditionnelles pour avoir des titres changeant dans un doc RTF avec STARTPAGE=NEVER (GTITLE et BODYTITLE) sont inopérantes avec ODS GRAPHICS.
Reste la solution du gros bourrin : éditer la définition de la boxplot pour y intégrer des titres. Le code est dégueulasse mais la modification assez bénigne.
D'abord voyons la tronche de la définition GTL de la boxplot :
Code :
1
2
3
PROC TEMPLATE ;
  SOURCE Stat.Boxplot.Graphics.Boxplot; 
RUN ;
Dans la Log, tu as tout le code d'une proc TEMPLATE, de DEFINE STATGRAPH à END. Tu copies / colles le tout dans une fenêtre Editor.
Puis tu ajoutes :
1) une macro-variable pour paramétrer un titre en plus. C'est l'instruction MVAR.
Code :
1
2
3
   define statgraph Stat.Boxplot.Graphics.Boxplot;   
      mvar titre ; 
      dynamic _XLABEL _XDISPLAY ...
2) ensuite on utilise cette macro-variable dans un ENTRYTITLE (titre d'image).
Code :
1
2
3
      BeginGraph;  
         EntryTitle titre ; 
         EntryTitle "Distribution of " ...
Tu exécutes le code et hop, tu as une nouvelle définition des sorties de la proc Boxplot.
Dans ton code final, avant chaque procédure, au lieu de ton instruction TITLE, tu mets par exemple.
Bon courage.
Olivier

PS : si tu ne veux pas que ton titre fasse partie de l'image, j'ai peur qu'il faille sortir des
Code :
ODS RTF TEXT="Test 1" ;
plutôt. Mais tu vas ramer pour changer la police, la couleur, etc. (à base d'ODS ESCAPECHAR et de style "embedded").
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 27/10/2011, 16h45   #5
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




Merci Olivier je vais regarder de suite.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 16h56   #6
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
Ah, et pour l'autre question (taille des figures) c'est plus simple... mais tout aussi logique !
Code :
ODS GRAPHICS ON / WIDTH=8CM HEIGHT=10CM ;
à changer avant chaque PROC si tu veux des graphiques de tailles différentes.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/10/2011, 10h20   #7
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
Voilà une proposition qui te permet de voir que les titres sont personnalisables dans entry. EN plus des autres dans entrytitle. Tu remarqueras que titre 1 est en italique et titre 2 est en gras.

Tu peux l'exécuter il fonctionne sur SASHELP.CLASS. Ensuite tu peux l'adapter. Si tu restes sur une table en entrée, tu peux utiliser SGRENDER, sinon il faut passer sur SGDESIGN.

Code :
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
proc template;
define statgraph sgdesign;
dynamic _SEX _HEIGHT _AGE _WEIGHT _NAME _WEIGHT2 _SEX2 _HEIGHT2;
begingraph;
   entrytitle halign=center 'Saisissez votre titre...';
   entryfootnote halign=LEFT 'Saisissez votre note de bas de page...';
   layout lattice / rowdatarange=DATA columndatarange=DATA rows=2 COLUMNS=2 rowgutter=10 columngutter=10 rowweights=(0.5 0.5);
      layout overlay;
         boxplot x=_SEX y=_HEIGHT / name='box' boxwidth=0.4 discreteoffset=0.0 clusterwidth=1.0;
         entry halign=center 'Titre 1' / valign=top location=outside textattrs=(style=italic weight=normal );
      endlayout;
      layout overlay;
         boxplot x=_AGE y=_WEIGHT / name='box2' boxwidth=0.4 groupdisplay=Cluster clusterwidth=1.0;
         entry halign=center 'Titre 2' / valign=top location=outside textattrs=(style=normal weight=bold );
      endlayout;
      layout overlay;
         boxplot x=_NAME y=_WEIGHT2 / name='box3' boxwidth=0.4 groupdisplay=Cluster clusterwidth=1.0;
         entry halign=center 'Titre 3' / valign=top location=outside;
      endlayout;
      layout overlay;
         boxplot x=_SEX2 y=_HEIGHT2 / name='box4' boxwidth=0.4 groupdisplay=Cluster clusterwidth=1.0;
         entry halign=center 'Titre 4' / valign=top location=outside;
      endlayout;
   endlayout;
endgraph;
end;
run;
 
proc sgrender DATA=SASHELP.CLASS  template=sgdesign;
dynamic _SEX="SEX" _HEIGHT="HEIGHT" _AGE="AGE" _WEIGHT="WEIGHT" _NAME="NAME" _WEIGHT2="WEIGHT" _SEX2="SEX" _HEIGHT2="HEIGHT";
run;
Images attachées
Type de fichier : png SGRender.png (26,0 Ko, 6 affichages)
__________________
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 20
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h49.


 
 
 
 
Partenaires

Hébergement Web