Creación de un gráfico bivariado y de variabilidad lado a lado dentro de un ciclo para múltiples parámetros y gruposTengo una idea de lo que puede ser necesario hacer, pero no estoy seguro de cómo implementarlo. Tengo una pequeña tabla de muestra (digamos) como esta (solo muestra 4 filas)
dt
Grupo Parámetro Valor Clase PhaseLabel Fecha
A X 2 pq z xxxxx
A Y 6 re z xxxxx
A R 2.6 uy u aaaa
B X 4 yt z qqqqq
B R 3 er s rrrrrrr
.................................................. ...............
Entonces quiero crear jrn-> html para cada uno de mis grupos (archivos html distintos). En cada archivo html habrá gráficos que se agregarán mediante un cuadro de lista V. Sin embargo, el problema es que necesito tener uno al lado del otro (un gráfico bivariado y uno de variabilidad)
Puedo producir un gráfico bivariante o variable, pero no puedo hacer ambos. Pongo el esqueleto del código a continuación:
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 un Bivariate (que se muestra aquí) o si quiero un Gráfico de Var (si solo reemplazo Bivariate con Gráfico de var como una función de Class & Phase Label ). Sin embargo, lo que quiero es dentro de cada grupo (primero para el bucle para cada parámetro (dentro del segundo bucle) el gráfico bivariado y var uno al lado del otro. Eso significa que si tengo 4 grupos, entonces debería tener 4 revistas (archivo html) y si para cada grupo digo que tengo 5 parámetros, entonces en cada archivo html tendré un total de 10 parcelas en 2 columnas (la primera columna dice Bivariante y la segunda La columna dice Var Chart). Estaba tratando de usar H Box dentro del segundo bucle for y tratando de agregar los dos gráficos, pero no funciona.
Realmente agradeceré la ayuda. Si se necesita cualquier otra información, puedo proporcionarla.
Tabla de datosGráficosScriptingRe: Creación de un gráfico bivariado y de variabilidad lado a lado dentro de un bucle para múltiples parámetros y gruposHe reelaborado un poco tu guión.Tendrá 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á 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>
La secuencia de comandos funcionó sin errores en los datos de muestra proporcionados.
Re: Creación de un gráfico bivariado y de variabilidad lado a lado dentro de un bucle para múltiples parámetros y gruposDéjame revisar los datos reales y te volveré pronto. Muchas gracias Jim. ¡Siempre eres fabuloso!