Creación de un gráfico bivariado y de variabilidad en paralelo dentro de un bucle para múltiples parámetros y gruposTengo una idea de lo que se debe hacer, pero no estoy seguro de cómo implementarlo. Tengo una pequeña tabla de muestra (por ejemplo) como esta (que muestra solo 4 filas)
es
Grupo Parámetro Valor Clase Fase Etiqueta Fecha
AX 2 pq z xxxxx
AY 6 re z xxxxx
AR 2.6 uy u yyyyy
BX 4 yt z qqqqq
BR 3 es rrrrrrr
................................................. ...............
Quiero crear jrn-> html para cada uno de mis grupos (archivos html distintos). En cada archivo html habrá gráficos que se adjuntarán mediante un cuadro de lista en forma de V. Sin embargo, el problema es que necesito tener uno al lado del otro (un gráfico bivariado y uno de variabilidad).
Puedo generar un gráfico bivariado o un gráfico variable, pero no puedo hacer ambos. A continuación, incluyo el esqueleto del código:
dt = Current Data Table();
out_path = "*****"
Summarize( groupid = by(:Group));
Summarize(paramgrp = by(:Parameter));
mydf = {};
For (k=1, k<=N items(groupid),k++,
grp_name = groupid[k];
myhtm = New Window( "30d Trend Plots Group Wise", myhtm[k] = V List Box() );
For( i = 1, i <= N Items( paramgroup ), i++,
idname = Char( paramgroup[i] );
outfile = out_path || grp_name || "_" || "trend_plots" || ".html";
df_ooc = dt_month << Bivariate(
Y( :Value),
X( :DATE),
Where( :Parameter == idname),
Where (:Group == groupname),
By(:Group :Parameter),
);
mydf[k] << append( Report( myhtm))
); ///// 2nd for loop end
jrn_df = New Window("Trend Correlation Report", << Journal) ;
mydf[k] << Journal(Freeze All) << show window(0);
jrn_df << Save HTML(outfile);
Close All (Journals, "No Save");
); 1st for loop end
Ahora el código anterior funciona perfectamente bien cuando quiero tener 1 diario para cada grupo que traza con un Bivariado (mostrado aquí) o si quiero un Gráfico Var (si simplemente reemplazo Bivariado con Gráfico var como una función de la Etiqueta de Clase y Fase). Sin embargo, lo que quiero es dentro de cada grupo (primer bucle for para cada parámetro (dentro del 2do bucle) el gráfico bivariado y var uno al lado del otro. Entonces eso significa que si tengo 4 grupos, entonces debería tener 4 diarios (archivo html) y si para cada grupo digamos que tengo 5 parámetros, entonces en cada archivo html tendré un total de 10 gráficos en 2 columnas (la 1ra Columna dice Bivariado y la 2da Columna dice Gráfico Var). Estaba tratando de usar H Box dentro del segundo bucle for y tratando de agregar los dos gráficos, pero no funciona.
Agradecería mucho cualquier ayuda. Si se necesita más información, puedo proporcionarla.
Ingeniería de Calidad y ProcesosRe: Creación de un gráfico bivariado y de variabilidad en paralelo dentro de un ciclo para varios parámetros y gruposGracias, Jim. Sí, probé con mis datos reales. Funcionó a las mil maravillas. ¡Aprendí algo nuevo!Re: Creación de un gráfico bivariado y de variabilidad en paralelo dentro de un ciclo para múltiples parámetros y gruposDéjame comprobar los datos reales y volveré pronto. Muchas gracias Jim. ¡Siempre eres fabuloso!Re: Creación de un gráfico bivariado y de variabilidad en paralelo dentro de un ciclo para varios parámetros y gruposHe reelaborado un poco tu guión.Tendrás que revisarlo y estudiar lo que he hecho.El problema básico es que cuando usa un BY() en las plataformas, genera un informe separado para cada nivel de by.
El guión tal como está escrito generará los diarios para cada grupo.He comentado la ventana de presentación y el guardado del diario en html.Hice esto, así que para empezar verás las diferentes revistas.Solo necesita eliminar los comentarios, y debería funcionar de la manera que desee.
Names Default To Here( 1 );
dt = Current Data Table();
out_path = "*****";
Summarize( groupid = by( :Group ) );
Summarize( paramgroup = by( :Parameter ) );
mydf = {};
For( k = 1, k <= N Items( groupid ), k++,
grp_name = groupid[k];
myhtm = New Window( "30d Trend Plots Group Wise", lb = Lineup Box( N Col( 2 ) ) );
For( i = 1, i <= N Items( paramgroup ), i++,
idname = Char( paramgroup[i] );
outfile = out_path || grp_name || "_" || "trend_plots" || ".html";
df_ooc = dt << Bivariate(invisible,
Y( :Value ),
X( :DATE ),
Where( :group == grp_name ),
By( :Parameter ),
);
vc = Variability Chart(invisible,
Y( :Value ),
X( :Date ),
Std Dev Chart( 0 ),
where( :group==grp_name ),
By( :parameter )
);
// For each value in the By group, there is a separate report
theEnd=.;
try(theEnd=nitems(df_ooc)); if(ismissing(theEnd), theEnd=1);
For( rptGroup = 1, rptGroup <= theEnd, rptGroup++,
IF( theEnd == 1,
lb << append( Report( df_ooc ) );
lb << append( Report( vc ) );
,
lb << append( Report( df_ooc[rptGroup] ) );
lb << append( Report( vc[rptGroup] ) );
);
);
df_ooc << close window;
vc << close window;
); ///// 2nd for loop end
jrn_df = New Window( "Trend Correlation Report", <<JOURNAL></JOURNAL>
El script funcionó sin errores en los datos de muestra proporcionados.