Hola,
Tengo una tabla de datos con cientos de miles de líneas.Hay una columna de ID de ejecución, una columna de nombres de dispositivos (29 actualmente de interés) y una columna de valores asociados.Entonces, para cada ejecución, hay varios dispositivos que registran datos, y quiero crear gráficos de ejecución para cada dispositivo con la ID de ejecución como eje x.Sin embargo, tengo dos problemas que puedo resolver parcialmente individualmente, pero no resolverlos juntos.
Primero, estoy usando JMP 13.Tengo acceso a JMP 16 pero no estoy instalado actualmente.Tengo un montón de scripts existentes que no quiero romper cambiando a otra versión de JMP, y lo que estoy buscando hacer debería ser fácil de hacer.
En segundo lugar, el enfoque general que estoy tratando de tomar es el siguiente:
- Recorra la lista de nombres de dispositivos únicos y genere un gráfico de ejecución; alimentar en cada control de gráfico de ejecución individual y límites de especificaciones que se han determinado a partir de los datos para cada dispositivo (puedo introducir los límites de control y especificaciones en los gráficos de control con bastante facilidad)
- Agregar todo el gráfico en una nueva ventana
El script que tengo para graficar es el siguiente:
curDev = devices[i]<BR />dt << Control Chart(
Sample Label( :ID ),
KSigma( 3 ),
Where( :DeviceName == curDev ),
Chart Col( Value, Levey Jennings(Avg(lims[4]), LCL(lims[3]), UCL(lims[5]) ) ), // lims list found separately
SendToReport(
Dispatch(
{"Levey Jennings of Value"},
curDev,
TextEditBox,
{Set Text( curDev )} // Ensures y-axis title is device name rather than column name of "Value"
)
)
);Esto crea varias ventanas de gráficos, cada una con un cuadro en la parte superior que dice "Dónde dispositivo == curDev".
Por lo tanto, se pueden trazar gráficos, aunque con un cuadro feo e innecesario, pero tengo 29 ventanas de gráficos abiertas.
Así que ahora necesito agregarlos a todos en una ventana y eliminar el cuadro superior "Dónde dispositivo ==".
Hay esta respuesta en los foros que pensé que sería útil: cómo eliminar "Dónde" de la ventana del informe del generador de gráficos - Comunidad de usuarios de JMP .De hecho, elimina el cuadro en la parte superior si genero 29 gráficos individuales, por lo tanto:
Build_Chart = Function({var},
cco = dt << Control Chart(
Sample Label( :ID ),
KSigma( 3 ),
Where( :Value == curDev ),
Chart Col( :Value, Levey Jennings(Avg(lims[4]), LCL(lims[3]), UCL(lims[5]) ) ),
);
tp = Report(cco) << topparent;
tp[Textbox(1)] << delete;
);
for(i=1, i<=NItems(devices), i++,
curDev = devices[i]; //probably unnecessary
Build_Chart(curDev);
)Sin embargo, cuando trato de hacer lo mismo que se describe en la publicación del foro vinculado, aparece 1 gráfico en la ventana y luego el script falla con "Send Expects Scriptable Object{75240} en acceso o evaluación de 'Send', tp[Text Box( 1 )] << delete/*###*/"
Build_Chart = Function({var},
// same function as above
)
pb = Panel Box();
for (i = 1, i<= NItems(devices), i++,
curDev = devices[i];
pb <<APPEND></APPEND>¿Por qué agregar el gráfico a un cuadro de panel se complica con tp << delete en la función Build_Chart?
Otro enfoque que he probado es algo como lo siguiente, donde obtengo un objeto de informe:
nw = New Window("Charts",
lub = Lineup Box(NCol(2));
);
for (i = 1, i<= NItems(devices), i++,
curDev = devices[i];
cco = dtRecLog << Control Chart(
Sample Label( :ID ),
KSigma( 3 ),
Where( :Device == curDev ),
Chart Col( :Value, Levey Jennings(Avg(lims[4]), LCL(lims[3]), UCL(lims[5]) ) ),
);
rep = cco << Report;
lub << Append(rep);
);Esto crea una ventana separada con 29 gráficos sin el cuadro "Dónde ==", pero además genera 29 ventanas gráficas separadas.cco << Delete Window no funciona, ya que cco no es una referencia a una ventana.yo pudo haga una ventana () << Eliminar ventana, pero no sé cuáles son los nombres de las ventanas, y las conjeturas obvias no funcionan, por lo que no puedo eliminar las ventanas en JSL.
Entonces, con lo que necesito ayuda es con lo siguiente:
- Cree una ventana con todos los gráficos sin el cuadro "Dónde: Dispositivo == curDev" encima de la ventana del gráfico
- Agregue todos los gráficos en una sola ventana
- No genera 29 ventanas diferentes.
Muchas gracias de antemano por su ayuda.