Hola a todos,
Tengo otra pregunta interesante.
Tengo un datatable a partir del cual genero un gráfico de Levey Jennings, marcando las pruebas 1, 3 y 5. Si el último punto en el gráfico está marcado por una de estas pruebas, debo mostrar el gráfico en una ventana diferente. ¿Es esto posible en jsl?
No importa si puedo obtener esto del cuadro o de la tabla de datos. Si es necesario, agrego una columna adicional con las pruebas con las que se han marcado los puntos.
¡¡¡Gracias!!!,
ene
Gracias por la respuesta, y la solución! Esto es realmente genial
El resto del script no será un problema.
oops El cierre de sesión se pone envuelto. Esto debería ser más fácil de leer.
Marker({99, 283}), Pen Color(0), Marker Size(3),
Marker({100, 311}), Pen Color(0), Pen Color(3),
Marker(Combine States(Color State(3),Marker State(8)), {98, 275}), Text({98.2, 275}, \!"5\!"), Pen Color(3),
Marker(Combine States(Color State(3),Marker State(8)), {99, 283}), Text({99.2, 283}, \!"5\!"), Pen Color(3),
Marker(Combine States(Color State(3),Marker State(8)), {100, 311}), Text({100.2, 311}, \!"1\!"), Pen Color(0)})Los Gráficos de control JMP tienen una función llamada Script de alarma. Puede especificarlo en la declaración de llamada, sin embargo, es más fácil recuperar información si utiliza la técnica que se muestra en el script. Sin embargo, el ejemplo especifica una Columna de gráfico, si tiene varias columnas de gráfico, asegúrese de que la alarma escriba qc_col. Vea las notas debajo del guión.
Names Default To Here( 1 );
dt = New Table ("Data", New Column("Day", numeric, continuous), New Column("Measurement", numeric, continuous),
add rows(100));
dt:Day << set each value(Today() - (101-row())*24*60*60);
dt:Measurement << set each value( if( row() <= 90, floor(Random Normal()*20 + 200),
floor(Random Normal()*20 + 200 + (row() -90)*10) )
);
dt:Day << Format( "m/d/y", 10);
nmx = nrow(dt) + 6;
lj_chart = Control Chart(
Sample Label( :Day ),
KSigma( 3 ),
Chart Col(
:Measurement,
Levey Jennings
),
Alarm Script(Write( qc_col, ": ", qc_sample, ", ")),
SendToReport(
Dispatch(
{"Levey Jennings of Measurement"},
"1",
ScaleBox,
{Min( 0 ), Max( nmx ), Inc( 7 ),
Minor Ticks( 0 )}
)
)
);
flag1 = Log Capture( lj_chart << Test 1(1) );
flag3 = Log Capture( lj_chart << Test 3(1) );
flag5 = Log Capture( lj_chart << Test 5(1) );
show(flag1, flag3, flag5);Ahora puede analizar las "banderas" y mirar para determinar si el último valor está marcado. Si es así, clone el gráfico y colóquelo en una nueva ventana. No dijiste, si querías que esto fuera una "copia" en vivo o una copia clonada del gráfico.
No conozco sus habilidades de JSL ni sus tareas específicas, así que mantuve este ejemplo simple.
Existe otro método para obtener esta información, pero requiere un análisis y no lo recomendaría. El método es: Para cada gráfico, se obtiene el diario _xx = lj_chart << Obtener diario; los puntos con banderas tendrán marcadores adicionales con texto, es decir, Marcador (Estados Combinados (...)) . La inserción a continuación fue copiada del registro.
Marker({99, 283}), Pen Color(0), Marker Size(3), Marker({100, 311}), Pen Color(0), Pen Color(3), Marker(Combine States(Color State(3),Marker State(8)), {98, 275}), Text({98.2, 275}, \!"5\!"), Pen Color(3), Marker(Combine States(Color State(3),Marker State(8)), {99, 283}), Text({99.2, 283}, \!"5\!"), Pen Color(3), Marker(Combine States(Color State(3),Marker State(8)), {100, 311}), Text({100.2, 311}, \!"1\!"), Pen Color(0)})Puede ver que la muestra 98 tiene un valor de 275 y se marcó para la regla 5, ídem para la muestra 99 valor 283 y la muestra 100 con el valor 311 se marcó para la regla 1.
Nota final, ya que las mediciones se generan aleatoriamente, es probable que no obtenga los mismos resultados que estos.
Es un elemento de la Lista de deseos durante mucho tiempo para guardar los indicadores en la tabla de datos, o incluso expandir el Script de alarma para escribir en la tabla de datos.
Espero que encuentres esto útil.
Georgia