Posts Tagged ‘couleur’

h1

SAS : obtenez des couleurs sympas dans vos rapports en 5 minutes

août 20, 2018

Publicités
h1

Passer par un format pour changer les couleurs d’une cellule dans un tableau (PROC REPORT et ODS)

septembre 17, 2009

Dans de précédents articles, je vous ai parlé de la possibilité de changer le style des cellules d’un tableau. Je vous invite ici à découvrir comment un format peut vous éviter de passer par un COMPUTE/ENDCOMP de PROC REPORT pour changer le style selon les valeurs prises par une variable donnée.

1. Créer les formats pour l’exemple

Pour mettre en gras (bold) ou non, il faut passer par le style FONT_WEIGHT. Dans notre exemple, ce style prendra la valeur BOLD quand la variable AGE aura des valeurs entre 14 et 16 ans et un LIGHT pour un style non gras. Vous avez aussi à disposition la valeur MEDIUM pour un ton légèrement plus prononcé.

Pour changer la couleur du texte, c’est le style FOREGROUND qu’il faut utiliser. Dans notre cas, le texte aura la couleur bleu si la variable AGE est comprise entre 14 et 16 ans inclus.

proc format;
value age_font 1113=‘light’
1416=‘bold’;
value age_color 1416=‘blue’;
run;

2. Utiliser le format dans PROC REPORT

Pour changer le style d’une colonne en particulier, il suffit d’ajouter style(column)=[…] dans l’instruction DEFINE.

Ici au lieu de donner une couleur à toutes les valeurs avec FOREGROUND= suivi du nom de la couleur, on donne le format AGE_COLOR. qui prendra la valeur BLUE pour les AGE des 14-16 ans.

De manière similaire, l’épaisseur du trait est changée avec FONT_WEIGHT et le format AGE_FONT. défini auparavant.

ods listing close;
ods pdf file=‘C:/sasref/zebre.pdf’;
proc report data=sashelp.class nowd;
columns name age;
define name / display ;
define age / display style(column)=[font_weight=age_font. foreground=age_color.];
run;
ods pdf close;
ods listing;

3. Voir le résultat

color_format

Lectures complémentaires

Des questions ? Envoyez votre message sur le forum du blog.

h1

Alterner les couleurs de fond dans un tableau : une ligne sur deux (ODS et PROC REPORT)

août 30, 2009

Ces semaines passées, je vous ai proposé une syntaxe pour changer le style des cellules d’un tableau généré sous SAS avec PROC REPORT. Aujourd’hui, je vous propose une variante permettant de changer la couleur de fond une ligne sur deux. L’exemple utilise une sortie PDF. Le programme peut s’appliquer aux sorties RTF et TAGSETS.EXCELXP.

1. Le programme

Dans PROC REPORT, l’instruction CALL DEFINE contenu entre les instructions COMPUTE et ENDCOMP permet de modifier le style des lignes dans un tableau.

La notion de RETAIN : Dans l’exemple qui suit une variable nommée CNT est créée avec un RETAIN implicite. Le changement de couleur de fond est fonction de la valeur prise par cette variable. Vous pouvez également utilisée une variable déjà existante dans le data set lu.

La foncton MOD() : Le modulo est le résidu d’une division. La fonction MOD() avec un modulo 2 permet de distinguer les valeurs pairs des valeurs impaires. Ici à chaque fois que la valeur CNT a une valeur pair, le fond est mis en gris.

ods listing close;
ods pdf file=‘C:/sasref/zebre.pdf’;
proc report data=sashelp.class nowd;
columns name age;
define name / display;
define age / display;
compute name;
cnt+1;
if mod(cnt,2) then call define (_row_,‘style’,‘style=[background=lightgrey]’);
endcomp;
run;
ods pdf close;
ods listing;

2. Le résultat

zebre

Lectures complémentaires

h1

Un moyen simple de changer les couleurs en fonction des valeurs prises par des variables dans un fichier .xls

juillet 26, 2009

Suite à la question de Pierre, je vous invite à découvrir comment changer la couleur de données selon leur valeurs dans un fichier .xls généré au moyen d’ODS TAGSETS.EXCELXP et PROC REPORT.

1. Le code de base à améliorer

ODS TAGSETS.EXCELXP FILE=’…xls ‘ / ODS TAGSET.EXCELXP CLOSE : Pour l’exemple, un fichier CLASS_COLOR.XLS est créé.

PROC REPORT : Il contient les données de la variable AGE disponibles dans la table SASHELP.CLASS.

ODS LISTING CLOSE/ODS LISTING : Aucune sortie n’est envoyée vers la destination traditionnelle LISTING le temps de la création du fichier .xls.

ods listing close;
ods tagsets.excelxp file=‘C:/sasref/class_color.xls’;
proc report data=sashelp.class nowd;
column age;
define age / ‘Age’ display;
run;
ods tagsets.excelxp close;
ods listing;

2. L’ajout de COMPUTE dans PROC REPORT

A présent les intructions COMPUTE et ENDCOMP englobe une condition. Si la variable AGE est égale à 15 alors tous la valeur 15 est mise en rouge (foreground=) et la couleur de fond de la cellule est bleu clair (background=).

Pour cela, on utilise CALL DEFINE si et seulement si AGE=15. CALL DEFINE est composé de trois paramètres :

  • _COL_
  • ‘style’
  • ‘style=[à compléter]’

ods listing close;
ods tagsets.excelxp file=‘C:/sasref/class_color.xls’;
proc report data=sashelp.class nowd;
column age;
define age / ‘Age’ display;
compute age;
if age=15 then call define (_COL_,‘style’,‘style=[background=lightblue foreground=red]’);
endcomp;
run;
ods tagsets.excelxp close;
ods listing;

3. Voir le résultat

xls_compute

4. Quelques styles supplémentaires

Pour compléter la liste des styles, vous avez par exemple:

  • Changer la taille des caractères : font_size=14pt (mettre en taille 14 points)
  • Changer l’inclinaison des caractères : font_style=italic (mettre en italique)
  • Changer l’épaisseur des traits formant les caractères : font_weight=bold  (mettre en gras)
  • Changer la police de caractères : font_face= »Courier New, Arial » (utiliser Courier New si disponible, sinon utiliser Arial).

Lectures complémentaires :