<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Estoy tratando de trazar tres gráficos de control (IR, EWMA y CUSUM) pero por alguna extraña razón, las ventanas del gráfico muestran espacios en blanco. Cuando se intenta utilizar la interfaz JMP, se trazan los gráficos a la perfección.
Un hecho interesante es que el mismo gráfico se llena cuando se realiza el tercer paso mencionado a continuación en el caso de que la primera ejecución genere límites, pero no cuando se requiere realmente con límites, incluso los límites que se aplican actualmente se calculan a partir de la misma tabla.
Así es como funciona mi flujo de código:
- > Obtener archivos de entrada
-> Únete a ellos para crear la tabla principal
-> Calcular límites y almacenar en otra tabla para todos los parámetros de proceso. (Para la primera ejecución, los límites se calcularán a partir de la tabla principal creada en el paso anterior)
-> En la función de trazado, haga clic en Parámetros y obtenga límites para ellos y llame a la función de visualización
-> Dibuje los gráficos usando los valores de la tabla principal mientras aplica los valores límite apropiados.
Aquí está el código para los dos últimos pasos:
monitor = Función ({ Proceso , Etiqueta , Por , Src_Type , lmt1 , lmt2 , lmt3 } ,
r1 = Nueva ventana ( "Informe de análisis de tendencias" || Fecha larga ( Hoy ()) ,
Cuadro de lista h (
Caja de panel ( "Rango individual y móvil" , Tabla de datos actual ( dt ) ; // dt es la tabla principal del paso 2.
cc = Tabla de control (
Etiqueta de muestra ( Como nombre ( Etiqueta )) ,
Tamaño del grupo ( 1 ) , KSigma ( 3 ) ,
Como columna ( Proceso ) , Medida individual ( LCL ( lmt1 El 6 ]) , AVG ( lmt1 El 5 ]) , UCL ( lmt1 El 7 ]))
) ,
Dónde ( Como columna ( Por ) == Src_Type )
) ;
) , // ¡Se excluyeron otros tipos de gráficos para acortar el espacio!
) ;
) ;
) ;
trama = Función ({ lmts , pmt_path } ,
param_dt = Abierto ( pmt_path , "invisible" ) ;
param_summ = param_dt << Resumen ( Invisible ,
Grupo ( : Agrupar por ,, Proceso ,, Etiqueta de muestra ,, Por )) << Mostrar ventana ( 0 ) ;
por ( q = 12 , q <= NRow ( param_summ ) , q ++, Tabla de datos actual ( param_summ ) ;
col2 =: Proceso El q ] ; col3 =: Etiqueta de muestra El q ] ; col4 =: Por El q ] ;
Tabla de datos actual ( lmts ) ;
clms = lmts << Obtener nombres de columna ( Cuerda ) ;
Eliminar de ( clms , 1 , 3 ) ;
por ( t = 1 , t <= N artículos ( clms ) , t ++, Tabla de datos actual ( lmts ) ;
indv_lmts = Como columna ( clms El t ]) [ lmts << Obtener filas donde ( : Parámetro == col2 Y : Tipo de gráfico == "Individual" )] ;
cusum_lmts = Como columna ( clms El t ]) [ lmts << Obtener filas donde ( : Parámetro == col2 Y : Tipo de gráfico == "CUSUM" )] ;
ewma_lmts = Como columna ( clms El t ]) [ lmts << Obtener filas donde ( : Parámetro == col2 Y : Tipo de gráfico == "EWMA" )] ;
// Tabla de datos actuales (dt);
// dt1 = dt << obtener filas donde (como columna (dt, col4) == clms);
// si (nrows (dt1)> 0, dt << selecciona where (column (dt, col4)! = clms) << excluir << borrar seleccionar;);
monitor ( col2 , col3 , col4 , clms El t ] , indv_lmts , cusum_lmts , ewma_lmts ) ;
// dt << borrar estados de fila;
) ;
) ;
) ;
Cualquier ayuda en donde me esté perdiendo el truco sería muy útil. Intento muchas cosas pero en vano. #Comentar por favor si he creado algún tipo de confusión.
¡¡Gracias!!
** Actualizado: Valores límite utilizados:
LCL = 93.6194355860458; AVG = 101.61918084006; UCL = 109.618926094074;
LCL = 91.1389663749264; AVG = 101.933916247341; UCL = 112.728866119756;
LCL = 95.791125521153; AVG = 99.6808876541094; UCL = 103.570649787066;
LCL = 96.1221889831269; AVG = 99.2913942704352; UCL = 102.460599557744;
LCL =.; AVG = 101.63975868081; UCL =.;
LCL = 96.4170696517472; AVG = 99.4247943691138; UCL = 102.43251908648;
LCL = 85.6694623331952; AVG = 102.356837670718; UCL = 119.044213008241;
LCL = 85.2093412100746; AVG = 105.163584386677; UCL = 125.117827563278; // Para este registro que muestra "Límites de control fuera de orden: debe ser LCL <= Avg <= UCL"
Parece que hay algún problema al intentar obtener un resultado de ventana individual, pero cuando intenté agregar todos los bucles en un resultado de ventana final, se muestran. Si alguien puede ayudar en esto o voy por el camino equivocado.
Código actualizado:
V = VList Box ( "Todos" ) ;
monitor = Función ({ Proceso , Etiqueta , Por , Src_Type , lmt1 , lmt2 , lmt3 } ,
r1 = Nueva ventana ( "Informe de análisis de tendencias" || Fecha larga ( Hoy ()) ,
Cuadro de lista h (
Caja de panel ( "Rango individual y móvil" , Tabla de datos actual ( dt ) ; // dt es la tabla principal del paso 2.
cc = Tabla de control (
Etiqueta de muestra ( Como nombre ( Etiqueta )) ,
Tamaño del grupo ( 1 ) , KSigma ( 3 ) ,
Como columna ( Proceso ) , Medida individual ( LCL ( lmt1 El 6 ]) , AVG ( lmt1 El 5 ]) , UCL ( lmt1 El 7 ]))
) ,
Dónde ( Como columna ( Por ) == Src_Type )
) ;
) , // ¡Se excluyeron otros tipos de gráficos para acortar el espacio!
) ;
) ; V << Adjuntar ( r1 ) ; r1 << Cerrar ventana ;
) ;
trama = Función ({ lmts , pmt_path } ,
param_dt = Abierto ( pmt_path , "invisible" ) ;
param_summ = param_dt << Resumen ( Invisible ,
Grupo ( : Agrupar por ,, Proceso ,, Etiqueta de muestra ,, Por )) << Mostrar ventana ( 0 ) ;
por ( q = 12 , q <= NRow ( param_summ ) , q ++, Tabla de datos actual ( param_summ ) ;
col2 =: Proceso El q ] ; col3 =: Etiqueta de muestra El q ] ; col4 =: Por El q ] ;
Tabla de datos actual ( lmts ) ;
clms = lmts << Obtener nombres de columna ( Cuerda ) ;
Eliminar de ( clms , 1 , 3 ) ;
por ( t = 1 , t <= N artículos ( clms ) , t ++, Tabla de datos actual ( lmts ) ;
indv_lmts = Como columna ( clms El t ]) [ lmts << Obtener filas donde ( : Parámetro == col2 Y : Tipo de gráfico == "Individual" )] ;
cusum_lmts = Como columna ( clms El t ]) [ lmts << Obtener filas donde ( : Parámetro == col2 Y : Tipo de gráfico == "CUSUM" )] ;
ewma_lmts = Como columna ( clms El t ]) [ lmts << Obtener filas donde ( : Parámetro == col2 Y : Tipo de gráfico == "EWMA" )] ;
// Tabla de datos actuales (dt);
// dt1 = dt << obtener filas donde (como columna (dt, col4) == clms);
// si (nrows (dt1)> 0, dt << selecciona where (column (dt, col4)! = clms) << excluir << borrar seleccionar;);
monitor ( col2 , col3 , col4 , clms El t ] , indv_lmts , cusum_lmts , ewma_lmts ) ;
// dt << borrar estados de fila;
) ;
) ;
) ;
v = Nueva ventana ( "prueba" , V ) ;

El nuevo problema que tengo es que, en lugar de crear diferentes cuadros de Panel, cada vez que coloques todo en uno y elimines esta cosa "Donde (...)" de la pantalla.