Graphiques avec SAS/GRAPH
Graphiques avec SAS/GRAPH
Un clic droit sur le graphique (windows mais unix ?) ouvre un menu qui 3.2 Légendes
permet de sauver l’image dans le format .png avec la définition de l’écran.
Comme pour les axes, différents types de légendes (de 1 à 99) sont définis-
2.4 ODS sables. Ils spécifient positions et textes des libellés qui identifient les différents
graphismes et symboles utilisés.
Comme vu en introduction, le graphique peut être automatiquement orienté
dans une fichier au bon format (.rtf, .html...) et sans doute avec une meilleure 3.3 Symboles
définition que celle de l’écran.
Les différents types de symboles (1 à 99) sont définis afin de décrire les
ODS RTF BODY=’[Link]’; modes de représentation recherchés. Sont concernés : le symbole (forme,
ODS GRAPHICS ON; taille, couleur) utilisé pour représenter un point, le type de lignes reliant les
/* Programme SAS */ points (couleur, continue, hachurée, pointillée,. . . ), la façon ou mode d’inter-
ODS GRAPHICS OFF; polation incluant barres, boîtes à moustaches, escaliers, splines, intervalles de
3 Tutoriel 3 : Grahiques avec SAS/GRAPH
confiance, régression (linéaire, polynomiale, spline). Il est important de noter que chaque paramètre peut être initialisé ou redéfini
à différents endroits d’un programme SAS : dans les commandes spécifiques
symbol1 interpol=sm50s /* lissage spline */ (symbol, legend, axes, pattern, title, footnote), par la
value=diamond /* symbole */ commande goptions et dans chacune des procédures. Ceci impose de bien
height=3 /* taille du symb.*/ distinguer les paramètres globaux, applicables à tous les graphes, des para-
width=2; /* epaisseur */ mètres spécifiques à chaque graphe.
Réaliser les graphes suivants en exécutant les commande. Se reporter à l’an-
3.4 Options graphiques nexe pour expliciter et comprendre la syntaxe de chaque procédure.
Outre ceux décrits ci-dessus (hsize, vsize), cette commande redéfinit
les valeurs de plus de 80 paramètres affectant 4 Quantitatif
• les différents aspects du graphique :
– border cadre autour du graphique, Graphes usuels pour des variables quantitatives discrètes puis continues.
– gunit=cm|in|pct unité de mesure,
– rotate=landscape|portrait orientation du graphique, 4.1 Discret
• le texte : Création de la table
– ftext police du texte,
– ftitle police des titres, Lire les données de répartition en âge, à chaque âge est associé un effectif.
• texte, symboles, types de hachures, légendes.
• Les paramètres reprennent leurs valeurs par défaut à la suite de : data age;
– reset=all|global all concerne tous les paramètres tandis que que global input age effectif eff_cum;
n’affecte pas ceux définis dans la même commande. cards;
24 1 1
3.5 Titres et notes 26 2 3
29 3 6
Les commandes title et footnote définissent des lignes de texte au- 31 2 8
tour du graphique, elles suivent le même principe que celui décrit au para- 33 4 12
graphe I.1.4 et d’autres options sont disponibles : taille, couleur et police des 37 2 14
caractères, position, rotations de la ligne de texte et des caractéres, tracés de 38 4 18
lignes. 41 3 21
43 3 24
45 1 25
goptions reset=global gunit=pct border
46 6 31
ftext=swissb htext=3; 49 3 34
title1 height=5 ’Institut’; 50 1 35
title2 ’de’; 52 3 38
title3 height=5 ’Mathématiques’; 57 5 43
footnote1 font=script justify=left 59 2 45
’Universite de Toulouse’; 60 2 47
4 Tutoriel 3 : Grahiques avec SAS/GRAPH
62 1 48 4.2 Continu
;
/* place impérative du ";" */ Répartition des exploitations agricoles par classes de surface agricole utile
run; (SAU). Repérer comment sont organisées les données, attention, les classes ne
proc print;run; sont pas d’amplitudes égales.
Fonction de répartition
Diagramme en bâton
data exploit;
Le graphe légitime est un diagramme bâton, pas un histogramme qui corres- input SAU dens_eff freq_cum;
pond à une variable continue. cards;
0 0 0
proc gplot data=age; 5 4.8 0.24
axis1 label=("Age" justify=right); 10 2.18 0.349
axis2 label=("Effectif") 20 1.78 0.527
order=(0 to 6 by 1) offset=(0,); 35 1.35 0.73
symbol1 interpol=needle value=dot; 50 0.68 0.832
plot effectif*age / haxis=axis1 200 0.112 1.
vaxis=axis2 hminor=4 vminor=0; ;
run; run;
quit; proc print;run;
data entr; A quoi sert l’option group= ? Remplacez type=sum par type=mean. Es-
infile "[Link]"; sayer l’option patternid=group placée après hbar typeen. Tester de
input code $ nb ef ca; même les options gspace=5, noaxos, nostats, descending.
run;
proc print;run; Création d’un graphe représentant la production cumulée d’énergie pour
chaque année :
proc gplot data=entr;
goptions reset=global cback=white htitle=3
symbol1 interpol=r value=dot;
axis1 label=("Chiffre d affaire" justify=right);
htext=1 hpos=100 vpos=45;
axis2 label=("Effectif") offset=(0,); title1 "Production d""énergie 2001 à 2003";
plot ca*ef=1 / haxis=axis1 vaxis=axis2; pattern1 value=solid color=yellow;
run; pattern2 value=solid color=blue;
quit; pattern3 value=x3 color=green;
goptions reset=all; pattern4 value=solid color=red;
pattern5 value=x2 color=blue;
pattern6 value=solid color=green;
7 Énergies renouvelables axis1 label=("Energie produite (*)");
footnote1 justify=left "(*) exprimee en Kwh"
Le fichier de données [Link] contient la production d’énergie
justify=right;
d’origine renouvelable en France de 2001 à 2003, exprimée en Gwh. Les diffé-
axis2 label=none;
rentes sources sont l’énergie hydraulique, solaire, éolienne, l’énergie issue des
legend1 label=(position=(topo left)
déchets urbains solides, du bois et des déchets du bois, les biogaz (source ; Mi-
"Type d" justify=left "energie")
nistère de l’Économie, des Finances et de l’Industrie, 2004). On dispose donc
value=("biogaz" "bois" "dechets urbains solides"
en tout de trois variables annee, typeen et prod. Exécuter et commenter
"eolienne" "hydraulique" "solaire");
le code ci-dessous le plus précisément possible :
proc gchart data=enprod;
data enprod; vbar annee / sumvar=prod sum discrete raxis=axis1
infile "[Link]"; maxis=axis2 space=3 width=7
input annee typeen $ prod; subgroup=typeen legend=legend1;
proc print;run; run;
quit;
goptions reset=global vpos=45 goptions reset=all;
htitle=2 htext=1 hpos=100;
title1 "Production d energie 2001 a 2003"; A quoi sert l’option sum ?
proc gchart data=enprod; L’énergie hydraulique prend trop de place, celle-ci est retirée du graphique.
hbar3d typeen / sumvar=prod type=sum group=annee;
run; data enprod2;
quit; set enprod;
if typeen="hydrau" then delete;
8 Tutoriel 3 : Grahiques avec SAS/GRAPH
procédure “gplot” plot liste des graphes sous la forme : y*x<=n|variable>, avec la même
syntaxe que précédemment pour désigner plusieurs graphes (a*(a b),. . . ).
Graphiques en haute résolution de nuages de points en deux dimensions. La variable y fournit les ordonnées et x les abscisses des points représen-
Syntaxe tés par des symboles définis dans la commande symboln ou par diffé-
rents symboles selon les valeurs de la variable spécifiée qui induit une
proc gplot <options générales> ; classification. Dans ce dernier cas, une légende est créée par défaut.
by <descending> variable ;
bubble liste des graphes sous la forme : y*x = size où size est une va-
plot liste de graphiques
riable indiquant la taille des bulles à tracer autour des centres de coordon-
</ < annotate=data-set >
nées x et y.
< options d’apparence>
< options d’axes>> ;
Annotate data set
bubble liste de graphiques
</ < annotate=data-set > Une table d’annotations, définie lors d’une étape data, est une table SAS
< options d’apparence> contenant les descriptifs d’un ensembles de graphiques qui viendront se
< options d’axes>> ; superposer aux résultats des procédures précédemment décrites (gchart,
gplot,...). Il est alors possible de positionner tout libellé ou toute figure
géométrique simple et ainsi de personnaliser ses graphiques.
Options générales Des applications immédiates sont, par exemple, la production de plans fac-
• data=table sas indique le nom de la table ou, par défaut, la dernière crée, toriels avec identifications des points (variables, individus, modalités) par des
• annotate=table sas table contenant les compléments graphiques. libellés explicites ou encore le tracé du cercle des corrélations en analyse en
• uniform impose les mêmes échelles aux axes des différents graphiques. composantes principales.
Par principe, chaque ligne ou “observation” d’une table d’annotations est
Options d’apparence
une commande de réalisation d’un graphique particulier. Les valeurs de cha-
Elles spécifient les couleurs, les polices de caractères, les tailles des bulles cune des “variables” spécifient comment réaliser ce graphique : type, empla-
(bubble), le hachurage d’aires, la définition de légendes, la superposition cement, couleur,. . . . Les variables de la table d’annotation ont des noms pré-
(plot). définis ; les plus usuelles sont :
Options d’axes function indique ce qu’il faut tracé : bar, draw, frame, pie, symbol, label,. . . ,
x positionnement en abscisses,
Deux options permettent de définir les axes ou de leur assigner des déclara-
tions antérieurs : vaxis=axisn pour l’axe vertical et haxis=axisn pour y positionnement en ordonnées,
l’axe horizontal où n caractérise la définition d’axe concernée (cf. paragraphe size hauteur des caractères,
5.2.1.). De plus, frame trace un cadre tandis que noaxis supprime les axes. xsys unité de mesure des abscisses,
Commandes ysys unité de mesure des ordonnées,
by suivi du nom d’une variable qualitative indique que les graphiques sont hsys unité de mesure des hauteurs,
tracés par groupe d’observations ; la table doit être triée. color couleur,
10 Tutoriel 3 : Grahiques avec SAS/GRAPH
position d’un texte par rapport aux coordonnées (calé à gauche, centré,. . . ),
line type de ligne (par défaut, continue),
text texte du libellé
style police de caractères.
La mise en œuvre de ces fonctionnalités est un peu fastidieuse mais c’est
la seule façon de faire éditer par SAS certains types de graphiques dont les
fameux plans factoriels avec les libellés en clair de tous les points.
Création d’une table d’annotations :
data annocomp;
set outcomp;
x = prin1;
y = prin2;
xsys= ’2’;
ysys= ’3’;
text= lib_ind;
size= 0.8;
label x = ’axe1’;
label y = ’axe2’;
keep x y text xsys ysys size;
run;