Publicado el :
Gráfico CREATION_INTERNE

Gráfico de barras apiladas al 100% con SGPLOT

Este código también está disponible en: Deutsch English Français
En espera de validación
El script comienza definiendo una variable macro y un fileref. Luego crea un conjunto de datos llamado 'my_data' a partir de instrucciones DATALINES. Se utiliza un paso PROC SQL para enriquecer 'my_data' calculando el total de los montos por categoría ('bartotal'). Un segundo paso DATA STEP calcula el porcentaje de cada monto con respecto a su 'bartotal' ('catpct') y formatea esta nueva variable. Finalmente, el script configura los destinos ODS (HTML y gráfico PNG) y utiliza PROC SGPLOT para generar un gráfico de barras apiladas al 100%, ilustrando estos porcentajes con personalizaciones estéticas para los ejes y los colores.
Análisis de datos

Type : CREATION_INTERNE


El conjunto de datos principal 'my_data' se crea directamente en el script a través de una instrucción DATALINES, lo que lo convierte en una fuente de datos interna al código.

1 Bloque de código
Macro Variable / Fileref
Explicación :
Define la variable macro 'name' utilizada para el nombre de archivo de salida y el 'fileref' 'odsout' que apunta al directorio actual para las salidas ODS.
¡Copiado!
1%let name=col5;
2filename odsout '.';
2 Bloque de código
DATA STEP Data
Explicación :
Crea el conjunto de datos SAS 'my_data' leyendo los datos brutos proporcionados directamente en el script ('datalines') con las variables CATEGORY, SERIES y AMOUNT.
¡Copiado!
1DATA my_data;
2INPUT CATEGORY SERIES $ 3-11 AMOUNT;
3DATALINES;
41 Series A 5.0
52 Series A 6.8
63 Series A 9.2
71 Series B 6.5
82 Series B 6.9
93 Series B 5.6
101 Series C 2.3
112 Series C 3.1
123 Series C 2.3
13;
14RUN;
3 Bloque de código
PROC SQL
Explicación :
Modifica el conjunto de datos 'my_data' añadiendo una nueva columna 'bartotal', que representa la suma de los 'AMOUNT' para cada 'CATEGORY' usando una consulta SQL.
¡Copiado!
1PROC SQL;
2 create TABLE my_data as
3 select *, sum(amount) as bartotal
4 from my_data
5 group BY category;
6QUIT; RUN;
4 Bloque de código
DATA STEP
Explicación :
Modifica el conjunto de datos 'my_data' calculando 'catpct', el porcentaje de 'AMOUNT' con respecto a 'bartotal', y aplica un formato de porcentaje a esta nueva variable.
¡Copiado!
1DATA my_data; SET my_data;
2FORMAT catpct percent6.0;
3catpct=amount/bartotal;
4RUN;
5 Bloque de código
ODS
Explicación :
Cierra el destino ODS LISTING por defecto. Abre el destino ODS HTML, especifica la ruta de salida, el nombre del archivo HTML y el estilo. Configura las opciones ODS GRAPHICS para la imagen PNG generada. Define los títulos principales del gráfico con opciones de estilo y color.
¡Copiado!
1ODS LISTING CLOSE;
2ODS HTML path=odsout body="&name..htm"
3 (title="SGplot 100% Stacked Bar")
4 style=htmlblue;
5 
6ods graphics / imagefmt=png imagename="&name"
7 width=800px height=600px noborder imagemap;
8 
9title1 color=gray33 ls=0.5 h=23pt "100% Stacked Bar";
10title2 color=gray33 ls=0.5 h=17pt "Compares the percent each value";
11title3 color=gray33 ls=0.5 h=17pt "to a total across categories";
6 Bloque de código
PROC SGPLOT
Explicación :
Genera un gráfico de barras apiladas al 100% utilizando el conjunto de datos 'my_data'. Las barras representan 'CATEGORY', la altura se basa en 'catpct', y las pilas están definidas por 'SERIES'. El código personaliza las leyendas, los colores de los datos, los atributos de las barras (ancho, contorno) y la apariencia de los ejes X e Y (etiquetas, valores, cuadrícula).
¡Copiado!
1PROC SGPLOT DATA=my_data noautolegend pad=(left=10% right=15%);
2label catpct='PERCENT';
3styleattrs datacolors=(cx9999ff cx993366 cxffffcc);
4vbar category / response=catpct stat=sum
5 group=series barwidth=.6
6 outlineattrs=(color=black) nostatlabel;
7yaxis
8 values=(0 to 1 BY .2)
9 labelattrs=(size=16pt weight=bold color=gray33)
10 valueattrs=(size=16pt weight=bold color=gray33)
11 offsetmax=0 grid minor minorcount=1;
12xaxis
13 labelattrs=(size=16pt weight=bold color=gray33)
14 valueattrs=(size=16pt weight=bold color=gray33)
15 display=(noticks);
16RUN;
7 Bloque de código
ODS
Explicación :
Finaliza los procedimientos activos. Cierra el destino ODS HTML, guardando así el archivo HTML y las imágenes asociadas. Luego reactiva el destino ODS LISTING.
¡Copiado!
1QUIT;
2ODS HTML CLOSE;
3ODS LISTING;
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.