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 24/02/2011, 10h38   #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 Colorer Boxplot en fonction de la classe

Bonjour, j'aimerais colorer l'intérieur de mes boxplots en fonction de la classe et aussi rajouter un trait sur les statistiques de base que j'affiche pour chaque boxplot.

J'ai fouillé sur la page du support SAS mais étrangement quand j'utilise l'ODS j'ai pas la même chose que eux... et puis je n'ai pas trouvé comment faire la coloration qui m'intéresse.

J'ai mis en fichier joint l'idée et voici la syntaxe que j'entre:
Code :
1
2
3
4
5
6
7
 
ODS GRAPHICS ON;
PROC BOXPLOT DATA = TEST;
PLOT N1 * Statut = Statut / BOXSTYLE = SCHEMATIC NOHLABEL;
INSETGROUP min Q2 max mean std;
RUN;
ODS GRAPHICS OFF;
Si quelqu'un sait comment arriver à mes fins, surtout que là aussi ça fait un moment que je cherche la syntaxe.... merci d'avance.
Images attachées
Type de fichier : jpg Idee.JPG (48,2 Ko, 6 affichages)
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 11h23   #2
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
As tu essayé l'annotate?
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 11h27   #3
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 823
Points : 2 823
Salut.
Un début d'idée (bricolage tout moche mais je ne trouve aucune option qui corresponde à ton besoin) : générer une 2e variable quanti à représenter qui n'est renseignée que pour une des 2 catégories. Et ensuite superposer des boxplots, avec la variable complète et l'incomplète, en changeant la couleur.
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
32
33
PROC TEMPLATE ;
   DEFINE STATGRAPH boxplot.lapin / STORE=work.modeles ;
      DYNAMIC couleur1 couleur2 ;
      BEGINGRAPH ;
	    LAYOUT LATTICE / ROWS=2 ROWWEIGHTS=(.8 .2) ;
		    LAYOUT OVERLAY ;
	            BOXPLOT X=country Y=actual / FILLATTRS=(COLOR=couleur1) ;
				BOXPLOT X=country Y=actualBis / FILLATTRS=(COLOR=couleur2) ;
			ENDLAYOUT ;
			LAYOUT GRIDDED / ROWS=2 ;
				BLOCKPLOT X=country BLOCK=moy / VALUEHALIGN=CENTER 
												DISPLAY=(label VALUES) ;
				BLOCKPLOT X=country BLOCK=et  / VALUEHALIGN=CENTER 
												DISPLAY=(label VALUES) ;
			ENDLAYOUT ;
		ENDLAYOUT ;
      ENDGRAPH ;
   END ;
RUN ;
ODS PATH (PREPEND) work.modeles ;
PROC SQL ;
  CREATE TABLE work.sales AS
    SELECT *,
	       CASE WHEN (country EQT "G") THEN actual ELSE . END AS actualBis,
		   MEAN(actual) AS moy LABEL="Moy=",
		   STD(actual) AS et LABEL="Std="
	FROM sashelp.prdsale 
    WHERE FIRST(country) IN ("G","C") 
    GROUP BY country ;
QUIT ;
PROC SGRENDER DATA=work.sales TEMPLATE=boxplot.lapin ;
  DYNAMIC couleur1 = "red" couleur2 = "yellow" ;
RUN ;
A améliorer pour retrouver l'équivalent de l'INSETGROUP, ça sent l'incrustation d'un BLOCKPLOT avec les stats dedans. J'ai un peu commencé mais ça s'annonce plutôt chiant.

Citation:
étrangement quand j'utilise l'ODS j'ai pas la même chose que eux
En fait, sans ODS GRAPHICS, tu utilises SAS/GRAPH. Le résultat est produit à l'intérieur de SAS, en écoutant les GOPTIONS, les AXIS, les tables ANNOTATE etc. Avec ODS GRAPHICS, la réalisation du résultat est sous-traitée à un moteur Java.
Pas de convergence évidente des deux résultats donc.

Bon courage.
Olivier
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/02/2011, 11h27   #4
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
Euh... du tout, mais c'est une piste que je vais explorer de suite.
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2011, 12h24   #5
Membre habitué
 
Sébastien Ringuedé
Inscription : janvier 2011
Messages : 61
Détails du profil
Informations personnelles :
Nom : Sébastien Ringuedé
Localisation : France, Loiret (Centre)

Informations forums :
Inscription : janvier 2011
Messages : 61
Points : 114
Points : 114
Citation:
Envoyé par Manoutz Voir le message
As tu essayé l'annotate?
pas besoin d'annotate puisqu'une option CBOXFILL=(variable) fonctionne. il faut ajouter une variable à la table qui reprend les noms des couleurs souhaitées. Ca ne marche qu'en sortie SAS/GRAPH (marche pas avec ODS GRAPHICS puisque que, comme l'indique Olivier, ça joue sur les GOPTIONS et qu'elles ne sont pas utilisées par les sorties ODS GRAPHICS).

ce n'est pas non plus directement possible avec SGPLOT ou SGPANEL... même avec une édition avec statistical graphics editor... on peut éditer le template du SGPANEL et commencer à grenouiller dedans mais est ce que cela vaut le coup pour un graphique...

(maitenant, un coup d'illustrator et hop.. c'est réglé en 2 minutes... je sais, ce n'est pas très sport...)
z6c3po est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/02/2011, 12h53   #6
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 Olivier et merci pour ton code que je vais m'empresser de tester immédiatement!

Je m'adressais à Manoutz tout à l'heure, je viens à peine de voir qu'on a posté en même temps lol.

Merci à vous 3!
joyeux_lapin13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h32.


 
 
 
 
Partenaires

Hébergement Web