¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?Mi tabla de datos tiene entradas part_ID en la columna 1. En la columna 2, aparecen los 5 parámetros de resumen: Mín, Q1, Mediana Q3, Máx y los límites de prueba LSL, USL. En la columna 1, el ID de la pieza se repite 7 veces (correspondiente a 5 parámetros de resumen + LSL y USL, 7 en total), después de lo cual aparece el siguiente ID de la pieza (y los 7 números correspondientes en la columna 2).
No quiero cambiar el formato de la tabla de datos (es decir, no quiero transponerla).
Quiero crear un gráfico de tendencias de diagrama de caja (con ID de pieza en el eje X) usando los 5 parámetros de resumen y los límites. ¿Cómo hacer esto a través de JSL?
Automatización y secuencias de comandosventanasRe: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?¿Existe alguna razón específica para no cambiar el formato de datos a algo mejor?
De

a algo más fácil de manejar

Si no tienes ningún indicador de qué fila es cuál, ¿estás seguro de que siempre están en el mismo orden?
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?@jthi Gracias. Mis datos originales tienen el formato de la tabla inferior, pero además tienen el nombre del parámetro medido como columna adicional. De esta forma sé cómo hacer los diagramas de caja usando los 7 parámetros.
Utilizo la función JMPs Summary () para obtener mis datos en forma de tabla superior.
Necesito este formulario para trazar otros gráficos en el formato que quiero donde los datos de los parámetros medidos (por ejemplo, su columna 3 en la tabla superior) en una columna. Hay múltiples parámetros medidos para la misma pieza con diferentes rangos (que aparecen en columnas separadas) que trazo en el eje Y y solo tener los datos para diferentes parámetros medidos en columnas me permite tener la escala diferente del eje Y para ellos en JMP (con ID de pieza en el eje X). Los diferentes parámetros medidos están correlacionados y dicho gráfico ayuda a comprender las tendencias relativas.
La esperanza anterior explica por qué mis datos están en el formato de su tabla superior.
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?Esta publicación podría dar algunas ideas. Crear un diagrama de caja a partir de valores ya resumidos .
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?@jthi . Gracias. He mirado la receta en tu enlace. El método descrito solo parece funcionar cuando los datos tienen el formato de su segunda tabla, que no es lo que quiero.
Si es posible decirle a JMP que cree diagramas de caja usando Min, Q1, Median, Q3, Max dados en una columna adyacente (Etiqueta en el conjunto de datos de ejemplo adjunto) para una ID de pieza determinada (columna 1 en adjunto) en lugar de que JMP calcule estos valores a partir de la distribución de los valores para cada parte, creo que obtendré lo que quiero.¿Es esto posible hacerlo a través de JSL?
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?Puede intentar construir el diagrama de caja usando Rect() y Line() (también hay un diagrama de caja que podría funcionar, pero necesita simular los datos o usar frecuencias).
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?@jthi Gracias, creo que el diagrama de caja se puede utilizar para hacer lo que quiero.
A partir del ejemplo del índice de secuencias de comandos, no me queda claro cómo se generaría el diagrama de caja para cada ID de pieza (en el eje x) como en los datos de mi ejemplo (adjunto antes).
¿Tendría que recorrer el ID de la pieza? En cuyo caso, ¿cómo decidir el tamaño y la escala del marco?
Sería útil si pudiera obtener un ejemplo básico utilizando mis datos de ejemplo.

Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?Es posible que el segmento de diagrama de caja solo se pueda usar para crear un diagrama de caja único para un cuadro de un solo cuadro y estará en el centro.
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?@jthi Gracias.
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?Si se ve obligado a utilizar el formato de datos que tiene, aún puede agregar nuevas columnas a la tabla. Puede crear una columna para cada una de las estadísticas para seguir la opción uno en el enlace anterior o agregar dos columnas (valor + frecuencia) y luego seguir la segunda opción. O constrúyalo totalmente personalizado a partir de diferentes partes mediante script gráfico.
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?@jthi . La única razón para tener los datos en el formato de su tabla superior (y la mía que está adjunta) es solo para poder tener diferentes escalas en un grupo por gráfico Y.
https://community.jmp.com/t5/Discussions/Can-you-change-y-axis-scale-independently-from-other-y-axis/td-p/17649
No quiero que tengas la opción de página, así que fui y seguí. @txnelson La sugerencia de poner los datos relevantes en la forma que sugirió, es decir, en columnas separadas (suponiendo que haya entendido su sugerencia correctamente).
Si hay alguna otra manera sin usar Page o @txnelson sugerencia de (otro similar aquí ), Soy todo oídos
.
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?@jthi Gracias por sus sugerencias sobre este tema al que vuelvo, ya que tengo que mantener el formato de datos como en los datos de ejemplo adjuntos anteriormente en este hilo. Puedo obtener casi lo que necesito con el siguiente script (podría haber mejores formas de hacerlo, pero a continuación está mi historia). Necesito ayuda con dos cosas.
- Necesito dibujar una línea negra vertical que conecte Min y Max para cada ID de pieza (actualmente no seleccionado en el filtro de datos local, cuadro izquierdo a continuación). Cuando se selecciona Min/Max en el filtro de datos local (gráfico de la derecha a continuación), se conectan mediante una línea negra vertical (en lugar de los puntos negros ahora en el gráfico de la derecha), llegaré casi a la anatomía de un diagrama de caja, que Creo que es suficiente y adecuado para su propósito. ¿Cómo obtener esta línea vertical a través de JSL para cada ID de pieza (Línea V ()?)?
- En segundo lugar, mis parámetros medidos (corriente, resistencia en los datos de ejemplo) en los datos reales serán >40. Por lo tanto, no quiero configurar el color de Leyenda como lo hice en mi script. Cómo configurar el color de la leyenda como negro de forma predeterminada (de lo contrario, JMP colorea cada grupo Y de manera diferente y no como configuré los colores del marcador).
Names Default To Here (1);
clear log ();
dt = Current Data Table ();<BR />
//Set LSL/USL marker and color
dt << Row Selection(
Select where( Contains( :Label, "LSL" ) | Contains( :Label, "USL" ) ),
Match case( 1 ),
Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( 29 ) << Colors( "Red" );
dt << Clear Select;<BR />
// Set Q1/Q3 marker and color
dt << Row Selection(
Select where( Contains( :Label, "Q1" ) | Contains( :Label, "Q3" ) ),
Match case( 1 ),
Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( 29 ) << Colors( "Black" );
dt << Clear Select;<BR />
//Set Median arker and color
dt << Row Selection(
Select where( Contains( :Label, "Median" ) ),Match case( 1 ),
Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( 0) << Colors( "Blue" );
dt << Clear Select;<BR />
// Plot chart
gb = Graph Builder(
Size( 404, 412),<BR /> Show Control Panel( 0 ),
Variables( X( :partID ), Y( :Resistance ), Y( :Current ) ),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 37 ), Jitter( "None" ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 35 ), Jitter( "None" ) ) ),
Local Data Filter(
Add Filter(
columns( :Label ),
Where( :Label == {"LSL", "Median", "Q1", "Q3", "USL"} )
)
),
SendToReport(
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
37,
Properties( 0, {Line Color( 0 )}, Item ID( "Resistance", 1 ) )
), Legend Model(
35,
Properties( 0, {Line Color( 0 )}, Item ID( "Current", 1 ) )
)}
)
)
);

Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?Este script adicional agregado a lo anterior brinda lo que se desea usando V Line ().
Ejemplo solo para PartID =1 (tabla a continuación). ¿Cómo hacer esto automático en un bucle?
gbr = gb << report;
// For FrameBox (1)
Q1_Part1_Para1 = 2.75;
Q3_Part1_Para1 = 3.1;
// For FrameBox (2)
Q1_Part2_Para1 = 250;
Q3_Part2_Para1 = 302;
PartNo = 1;
Eval(EvalExpr(gbr [Framebox (1)]<< Add graphics Script (
Pen color (black); V Line (PartNo-1, Q1_Part1_Para1, Q3_Part1_Para1);
)));
Eval(EvalExpr(gbr [Framebox (2)]<< Add graphics Script (
Pen color (black); V Line (PartNo-1, Q1_Part2_Para1, Q3_Part2_Para1);
)));
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?Puede utilizar Summarize() para obtener valores de partID únicos. Luego, puede usar subíndices de tablas de datos con una combinación de Loc() para obtener filas para un ID de pieza específico mientras realiza el bucle. Luego calcule/obtenga sus valores y agregue sus líneas
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?@jthi
>> Puede utilizar Summarize() para obtener valores de partID únicos.
DE ACUERDO
>> Luego puede usar subíndices de tablas de datos con una combinación de Loc() para obtener filas para un ID de pieza específico durante el bucle.
Nunca usé Loc (). ¿Esto me da la coordenada X para cada ID de pieza? Un ejemplo con mis datos de ejemplo sería muy útil.
>> Luego calcule/obtenga sus valores y agregue sus líneas.
¿Quiere decir calcular las coordenadas X para cada parte ya que otros números Min, Max, Q1, Q3 y Mediana ya están calculados?
Además, ¿tengo que recorrer cada FrameBox o existe una alternativa más sencilla?
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?Sus ID de pieza están en el mismo orden en el gráfico que en la tabla (y resumir), por lo que ya tiene la coordenada x. Si ya tiene todos los valores que necesita calculados, puede recuperarlos de la tabla de datos. A continuación se muestra un ejemplo que utiliza Summarize, Loc y subíndices de tabla de datos
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Summarize(dt, uniq_vals = by(:age)); // Summarize returns characters
For Each({uniq_val}, uniq_vals,
val_rows = Loc(dt[0, "age"], Num(uniq_val));
show(val_rows);
f_rows = val_rows[Loc(dt[val_rows, "sex"], "F")];
show(f_rows);
f_heights = dt[f_rows, "height"];
show(f_heights);
);
Solo tiene dos cuadros de marco, pero desea agregar varias líneas dentro de ellos, por lo que no debería ser necesario realizar un bucle sobre FrameBoxes (recorrer los partIds)
Editar:
Además, en lugar de Loc, puedes usar << Get Rows Where, ya que suele ser más fácil de usar.
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?@jthi . DE ACUERDO. Gracias. Le daré una oportunidad a esto (volveré si me quedo atascado).
En mi conjunto de datos real, el número de parámetros medidos es >50 (podría ser más), por lo que si trazara los 50 gráficos de tendencia de parámetros uno encima del otro, habrá 50 FrameBoxes, de ahí mi pregunta sobre cómo recorrer los FrameBoxes.
Además, para mi PartID = 1, anuncio usar X = 0, para la coordenada X en V Line () en mi script anterior. ¿Es así como se supone que es (es decir, la coordenada x para la línea V comienza en 0 y no en 1, aunque muestra 1)?
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?Si hay tantos parámetros, tener un bucle adicional es una buena idea.
Y para X = 0, sugeriría probarlo. Observa qué pasa (de esta manera normalmente aprendes más). También puede ver en la configuración del eje X que el valor es 0 y la etiqueta 1

Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?@jthi DE ACUERDO. Gracias. Una cosa más me está molestando. He desactivado la fluctuación en mi secuencia de comandos, pero los marcadores superior (Q3) e inferior (Q1) todavía aparecen con un desplazamiento. Puede ejecutar mi script con la tabla de datos adjunta antes para probar esto (estoy en JMP 16.2).
¿Hay otra configuración de Jitter que necesito desactivar?
La fluctuación/desplazamiento es más evidente si uso lo siguiente para establecer marcadores para Q1 y Q3 (solo intento obtener la forma del cuadro antes de dibujar la línea vertical), pero incluso con el marcador horizontal veo algo de desplazamiento. ¿Me estoy perdiendo de algo?
// Q1/Q3 marker and color
dt << Row Selection(Select where(Contains( :Label, "Q3" ) ),Match case( 1 ),Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( "Π" ) << Colors( "Black" );
dt << Clear Select;
dt << Row Selection(Select where( Contains( :Label, "Q1" ) ), Match case( 1 ), Dialog( Edit( Contains( Source Column( :Label ) ) ) )
) << Markers( "Џ" ) << Colors( "Black" );
dt << Clear Select;
Corrección: El desplazamiento parece deberse a la representación del gráfico por parte de JMP. Estirar el gráfico horizontalmente es arreglar el desplazamiento.
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?comprobando de esta manera
frame = (gbr)[FrameBox( 1 )];
seg = (frame << FindSeg( Marker Seg( 1 ) ));
{method, axis, limit, spacing, seed} = seg << Get Jitter();Obtengo un valor de "semilla" incluso después de configurar Jitter en ninguno
{"None", "XY", 1, 0, 184430754}¿Mis puntos están nerviosos (lo parecen)?
Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un part_ID determinado?Su jitter está configurado en Ninguno

lo que supongo significa que no debería agregarse ningún ruido aleatorio

Re: ¿Cómo crear diagramas de caja cuando 5 parámetros de resumen (Min, Q1, Median Q3, Max) y límites (LSL, USL) están en una columna correspondiente a un ID de pieza determinado?Este script adicional llamado por el script anterior (en este hilo) hace lo que quería. El script es específico para mis datos, pero muestra una forma de trazar V Line () dentro de un bucle en diferentes Frameboxes.
Al cambiar a BoxPlots en Graphbuilder con Q1, Q2 y Mediana seleccionados en el filtro de datos local, se obtienen diagramas de caja adecuados. La línea V () conecta Max y Min completando la anatomía de un diagrama de caja.Como solo se seleccionan Q1, Q2 y se ignora el resto de los datos, creo que se obtiene el cuadro correcto (al seleccionar más parámetros como Min y Max en el filtro de datos local se obtiene un cuadro incorrecto).
Names Default To Here (1);
Clear Log ();
setVLines_atMinMax = Function ( {gbr, FrameboxNo, PartNo, Min, Max}, {},
Eval(EvalExpr(gbr [Framebox (FrameboxNo)]<< Add graphics Script (
V Line (Expr(PartNo-1), Expr(Min), Expr(Max));
)));
);
gbr = gb << report;
nParts =5;
nc = ncols (dt); //number of coulms in my data table
For (j =1, j <=(nc-1), j++,
FrameboxNo = j;
for ( i = 1, i <= nParts, i++,
ind = (7*i-3); //show (ind);
ind_next = (7*i -3) + 1; //show (ind_next);
PartNo = Num(:PartID[ind]); //show (PartNo);
Min = Column(nc) [ind]; show (Min);
Max = Column(nc) [ind_next]; show (Max);
setVLines_atMinMax (gbr, FrameboxNo, PartNo, Min, Max);
);
nc = nc-1;
);
//show (FrameboxNo); show (nc);
