Publicado el :
Informes CREACION_INTERNA

Gráfico de Biorritmo con SAS/GRAPH

Este código también está disponible en: Deutsch English Français
En espera de validación
El script prepara el entorno gráfico (GOPTIONS), calcula las variables temporales relativas a la fecha actual y a la fecha de nacimiento proporcionada (a través de la macro variable &birthdate), genera los datos sinusoidales mediante un paso DATA, y traza las curvas resultantes utilizando PROC GPLOT. Está diseñado para ejecutarse típicamente como un SAS© Stored Process (uso de _webout).
Análisis de datos

Type : CREACION_INTERNA


Los datos se generan algorítmicamente en el paso DATA 'mydata' aplicando funciones sinusoidales basadas en la diferencia entre la fecha actual y la fecha de nacimiento.

1 Bloque de código
ODS & GOPTIONS
Explicación :
Configuración de la salida ODS HTML (adaptada a los Stored Processes) y definición de los parámetros globales del gráfico (tamaño, fuentes, colores) con GOPTIONS.
¡Copiado!
1ods listing close;
2ods html body=_webout path=&_tmpcat (url=&_replay) rs=none style=minimal;
3 
4goptions cback=white;
5goptions characters;
6goptions device=png;
7goptions border;
8 
9goptions gunit=pct htitle=5.5 htext=3.5 ctext=gray33 ftitle="albany amt" ftext="albany amt";
10goptions xpixels=700 ypixels=375;
2 Bloque de código
DATA STEP Data
Explicación :
Conversión de la fecha de nacimiento (texto) a un valor numérico SAS y cálculo del rango de fechas de análisis (hoy +/- 30 días). Almacenamiento de estos valores en macro-variables.
¡Copiado!
1DATA foo;
2bdate="&birthdate"d;
3call symput('bdate',bdate);
4today=today();
5call symput('today',today);
6startdate=today-30;
7enddate=today+30;
8call symput('startdate',startdate);
9call symput('enddate',enddate);
10RUN;
3 Bloque de código
DATA STEP Data
Explicación :
Generación de los datos de biorritmo. Para cada día del período, cálculo de los valores sinusoidales para los ciclos físico (23 días), emocional (28 días) e intelectual (33 días).
¡Copiado!
1DATA mydata;
2 LENGTH id $15;
3 FORMAT date date9.;
4 FORMAT value percentn7.0;
5 d2r=(atan(1)/45); /* degrees to radians conversion factor */
6 DO Date = &startdate to &enddate BY 1;
7 t=Date-&bdate; /* days since birth */
8 /* similar to value=sin(2*pi * t/23) ... */
9 Value = sin((t/23)*360*d2r); id='Physical'; OUTPUT;
10 Value = sin((t/28)*360*d2r); id='Emotional'; OUTPUT;
11 Value = sin((t/33)*360*d2r); id='Intellectual'; OUTPUT;
12 END;
13RUN;
4 Bloque de código
PROC GPLOT
Explicación :
Definición de los elementos gráficos (títulos, ejes, símbolos, leyenda) y creación del gráfico lineal de biorritmos con PROC GPLOT.
¡Copiado!
1title1 "Biorhythm Chart";
2title2 "For someone born &birthdate";
3 
4axis1 label=none order=(-1 to 1 BY .50) value=(color=gray33 h=3.5) minor=none offset=(0,0);
5axis2 label=none order=(&startdate to &enddate BY 30) value=(color=gray33 h=3.5) minor=(number=29) offset=(0,0);
6 
7symbol1 color=red i=join value=none width=2;
8symbol2 color=blue i=join value=none width=2;
9symbol3 color=cx00ff00 i=join value=none width=2;
10 
11legend1 label=none position=(bottom center) across=3;
12 
13PROC GPLOT DATA=mydata;
14plot Value*Date=id /
15 vref=(-.5 0 .5)
16 cvref=(graydd black graydd)
17 href=(&today)
18 chref=(black)
19 vaxis=axis1
20 haxis=axis2
21 legend=legend1
22 cframe=white
23 ;
24RUN;
25QUIT;
5 Bloque de código
ODS CLOSE
Explicación :
Cierre del destino ODS HTML.
¡Copiado!
1ods html close;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.