Publicado el :
Informes CREATION_INTERNE

Visualización de Ventas con Marcadores de Imágenes Personalizadas

Este código también está disponible en: Deutsch English Français
En espera de validación
Este script crea un conjunto de datos 'sales' que contiene el rendimiento de ventas por género. Luego utiliza el procedimiento SGPLOT para visualizar estos datos. La particularidad reside en el uso de la instrucción SYMBOLIMAGE para asociar imágenes externas (archivos PNG locales) con valores de estado ('Bad', 'Good', 'Great'), creando así un resaltado visual condicional. El script genera dos versiones del gráfico, la segunda añadiendo una lógica de 'cinta' adicional.
Análisis de datos

Type : CREATION_INTERNE


Los datos se crean manualmente a través de la instrucción DATALINES en el paso DATA. Nota: El script hace referencia a rutas de imágenes de Windows (C:\) que deberán adaptarse para un entorno SAS Viya (Linux).

1 Bloque de código
ODS
Explicación :
Configuración de la salida ODS (Output Delivery System) para definir la ruta de salida de los gráficos y la resolución (DPI).
¡Copiado!
1%let gpath='.';
2%let dpi=200;
3ods html close;
4ods listing gpath=&gpath image_dpi=&dpi;
2 Bloque de código
DATA STEP Data
Explicación :
Creación de la tabla 'sales'. Cálculo de variables condicionales (Status, Ribbon) y de posiciones para los marcadores gráficos (ys, yr) basados en el volumen de ventas.
¡Copiado!
1DATA sales;
2 LENGTH STATUS $5 Ribbon $3;
3 INPUT Name $ Gender $ Sales;
4 
5 STATUS='Bad';
6 IF sales > 50 THEN STATUS='Good';
7 IF sales >= 100 THEN STATUS='Great';
8 
9 Ribbon=ifc(sales > 110, 'Yes', '');
10 
11 ys=sales-10;
12 IF ribbon='Yes' THEN yr=sales-35;
13 
14 DATALINES;
15Pat Female 100
16Bob Male 76
17Cody Male 50
18Sue Female 120
19Val Female 70
20;
21RUN;
3 Bloque de código
PROC PRINT
Explicación :
Visualización simple del conjunto de datos creado para verificación.
¡Copiado!
1PROC PRINT;RUN;
4 Bloque de código
PROC SGPLOT
Explicación :
Creación del primer gráfico combinado. Utiliza VBARPARM para las barras y SCATTER para colocar las imágenes definidas por SYMBOLIMAGE en función del estado.
¡Copiado!
1ods graphics / reset attrpriority=none width=5in height=3in imagename='Conditional';
2title 'Sales and Status by Sales Person';
3PROC SGPLOT DATA=sales;
4 symbolimage name=bad image="C:\Sad_Tran.png" / scale=1;
5 symbolimage name=good image="C:\Happy_Tran.png" / scale=1;
6 symbolimage name=great image="C:\VeryHappy_Tran.png" / scale=1;
7 styleattrs datasymbols=(great good bad) datacolors=(pink cx4f5faf);
8 
9 vbarparm category=name response=sales / group=gender dataskin=gloss
10 filltype=gradient groupdisplay=cluster;
11 scatter x=name y=ys / group=STATUS markerattrs=(size=30);
12 yaxis offsetmin=0 offsetmax=0 grid;
13 xaxis display=(nolabel) offsetmin=0.1 offsetmax=0.1;
14RUN;
5 Bloque de código
PROC SGPLOT
Explicación :
Creación del segundo gráfico. Añade una capa adicional para mostrar una cinta (imagen 'rib') para las mejores ventas, además de los emoticonos de estado.
¡Copiado!
1ods graphics / reset attrpriority=none width=5in height=3in imagename='Conditional2';
2title 'Sales and Status by Sales Person';
3PROC SGPLOT DATA=sales;
4 symbolimage name=bad image="C:\Sad_Tran.png";
5 symbolimage name=good image="C:\Happy_Tran.png";
6 symbolimage name=great image="C:\VeryHappy_Tran.png";
7 symbolimage name=rib image="C:\Blue_Ribbon_Tran.png" / rotate=20;
8 styleattrs datasymbols=(great good bad rib) datacolors=(pink cx4f5faf);
9 
10 vbarparm category=name response=sales / fillattrs=(color=white);
11 vbarparm category=name response=sales / group=gender dataskin=gloss
12 filltype=gradient groupdisplay=cluster;
13 scatter x=name y=ys / group=STATUS markerattrs=(size=30);
14 scatter x=name y=yr / markerattrs=graphdata4(size=75) discreteoffset=0.25;
15 yaxis offsetmin=0 offsetmax=0 grid;
16 xaxis display=(nolabel) offsetmin=0.1 offsetmax=0.1;
17RUN;
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.
Información de copyright : http://blogs.sas.com/content/graphicallyspeaking/2015/04/12/conditional-highlighting-2/