Trazado de límites inferior/superior y promedio en un gráfico de controlHola chicos,
Me gustaría saber si es posible trazar los valores inferior, superior y promedio directamente en el gráfico de control (creado por el generador de gráficos de control) en lugar de la tabla Mostrar resúmenes de límites.
Gracias.
Re: Graficar límites inferior/superior y promedio en un gráfico de controlGracias, Jim. ¡Ahora funciona!Re: Graficar límites inferior/superior y promedio en un gráfico de controlLa sintaxis de la función "Resumir()" ha cambiado en las versiones recientes de JMP. Parece que ese podría ser el problema. Cambiar la declaración
Summarize( dt, byPhase = by( :MyPhase ) );
a
Resumir( porFase = por( :MiFase ) );
Re: Graficar límites inferior/superior y promedio en un gráfico de controlGracias. Revisé los datos de muestra de pepinillos en inglés y todavía no tuve éxito. Paso a paso para ejecutar el script y obtener el siguiente informe después de ejecutar Summarize( dt/*###*/, byPhase = by( :MyPhase ) ). Traduzco el registro al inglés para usted. ¿Crees que hay algo mal allí?
必须是赋值运算符 正在访问或计算“dt”, dt/*###*/
Debe usar el operador de asignación al visitar "dt"
在以下脚本中,使用 /*###*/ 标记错误
en el siguiente script, use /*###*/ para marcar el error
Re: Graficar límites inferior/superior y promedio en un gráfico de controlEl script busca un cuadro de esquema específico con el título, en inglés, de "Medición individual de ácido".Su salida obviamente no está en inglés.La siguiente secuencia de comandos cambia la referencia a Cuadro de contorno (2).Esta es una referencia absoluta al cuadro de contorno, mientras que "Medición individual de ácido" es una referencia relativa.También puede intentar reemplazar "Medición individual de ácido" con

Names Default To Here( 1 );
// Open the sample data table
dt = Open( "$SAMPLE_DATA\Quality Control\Pickles.jmp" );
// There isn't an adequate column to be used as a Phase column in the sample
// data table, so create one
dt << New Column( "MyPhase", character, formula( Char( Floor( Row() / 13 + 1 ) ) ) );
// Run the control Chart
ct = dt << Control Chart(
Phase( :MyPhase ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Acid, Individual Measurement( Phase Level( "1" ), Phase Level( "2" ) ), Moving Range( Phase Level( "1" ), Phase Level( "2" ) ) )
);
// Create a list called byPhase of the each of the Phase values
Summarize( dt, byPhase = by( :MyPhase ) );
// Find the max row for each phase to determine the X position on the chart
// for the placement of the text values
PhaseMaxRowList = {};
For( i = 1, i <= N Items( byPhase ), i++,
Insert Into( PhaseMaxRowList, Max( dt << get rows where( :MyPhase == byPhase[i] ) ) )
);
// Add the text to the chart
framebox = Report( ct )[frame box( 1 )];
addTxt = Expr(
framebox << Add Graphics Script(
Description( scriptNameTBD ),
Text Color( "Black" );
Text( Center Justified, {xTBD - 2, yTBD + .1}, txtTBD );
);
);
// Loop across the phases and add the 3 text values by pulling their values from the table
// and reformating the values
For( i = 1, i <= N Items( byPhase ), i++,
LCL = (Report( ct )[Outline Box(2)][Number Col Box( i )] << get)[1];
LCLtxt = "LCL=" || Format( LCL, "Fixed Dec", 5, 2 );
Avg = (Report( ct )[Outline Box(2)][Number Col Box( i + N Items( byPhase ) )] << get)[1];
Avgtxt = "Avg=" || Format( Avg, "Fixed Dec", 5, 2 );
UCL = (Report( ct )[Outline Box(2)][Number Col Box( i + (N Items( byPhase ) * 2) )] << get)[1];
UCLtxt = "UCL=" || Format( UCL, "Fixed Dec", 5, 2 );
// Use a separate graphics script for each annotation so that they are more easily moved 'by hand'
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "LCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), LCL, Expr(txtTBD), LCLtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "Avg Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), Avg, Expr(txtTBD), Avgtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "UCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), UCL, Expr(txtTBD), UCLtxt));
);Re: Graficar límites inferior/superior y promedio en un gráfico de controlEl JSL es el mismo que publicaste antes. Puede encontrar la imagen de la tabla aquí. Como puede ver, el texto para LCL, UCL y promedio no se ha agregado.
Gracias.
Re: Graficar límites inferior/superior y promedio en un gráfico de controlNo tengo acceso a JMP 11 ni a una Mac, por lo que necesitaré su ayuda. El mensaje apunta a un fragmento de código que intenta leer la LCL de la tabla de salida que se muestra. ¿Puede proporcionar la imagen de la tabla generada por el gráfico de control que tiene los límites?
Re: Graficar límites inferior/superior y promedio en un gráfico de controlProbé el JSL en mi Mac JMP 11. Sin embargo, parece que los textos se han agregado correctamente al gráfico. En la ventana de registro, obtengo la siguiente información de error y digo que no se puede calcular el subíndice. ¿Puedes darme una explicación?
For( i = 1, i <= N Elementos( byPhase ), i++,
LCL = (Informe( ct )[/*###*/"Medición individual de ácido"][Número Col Box( i )
] << obtener)[1];
Re: Graficar límites inferior/superior y promedio en un gráfico de control@ian_jmp
¡Muy buena adición!
Re: Graficar límites inferior/superior y promedio en un gráfico de controlMuy bueno Jim!
Me tomé la libertad de agregar a su código para que haya un script de gráficos separado para cada anotación:

Esto hace posible mover las anotaciones 'a mano' para evitar colisiones (haga clic con el botón derecho en el cuadro de gráficos, seleccione 'Personalizar' y edite los valores x e y en los scripts a su gusto).
Names Default To Here( 1 );
// Open the sample data table
dt = Open( "$SAMPLE_DATA\Quality Control\Pickles.jmp" );
// There isn't an adequate column to be used as a Phase column in the sample
// data table, so create one
dt << New Column( "MyPhase", character, formula( Char( Floor( Row() / 13 + 1 ) ) ) );
// Run the control Chart
ct = dt << Control Chart(
Phase( :MyPhase ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Acid, Individual Measurement( Phase Level( "1" ), Phase Level( "2" ) ), Moving Range( Phase Level( "1" ), Phase Level( "2" ) ) )
);
// Create a list called byPhase of the each of the Phase values
Summarize( dt, byPhase = by( :MyPhase ) );
// Find the max row for each phase to determine the X position on the chart
// for the placement of the text values
PhaseMaxRowList = {};
For( i = 1, i <= N Items( byPhase ), i++,
Insert Into( PhaseMaxRowList, Max( dt << get rows where( :MyPhase == byPhase[i] ) ) )
);
// Add the text to the chart
framebox = Report( ct )[frame box( 1 )];
addTxt = Expr(
framebox << Add Graphics Script(
Description( scriptNameTBD ),
Text Color( "Black" );
Text( Center Justified, {xTBD - 2, yTBD + .1}, txtTBD );
);
);
// Loop across the phases and add the 3 text values by pulling their values from the table
// and reformating the values
For( i = 1, i <= N Items( byPhase ), i++,
LCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i )] << get)[1];
LCLtxt = "LCL=" || Format( LCL, "Fixed Dec", 5, 2 );
Avg = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + N Items( byPhase ) )] << get)[1];
Avgtxt = "Avg=" || Format( Avg, "Fixed Dec", 5, 2 );
UCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + (N Items( byPhase ) * 2) )] << get)[1];
UCLtxt = "UCL=" || Format( UCL, "Fixed Dec", 5, 2 );
// Use a separate graphics script for each annotation so that they are more easily moved 'by hand'
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "LCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), LCL, Expr(txtTBD), LCLtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "Avg Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), Avg, Expr(txtTBD), Avgtxt));
Eval(Substitute(NameExpr(addTxt), Expr(scriptNameTBD), "UCL Text "||Char(i), Expr(xTBD), PhaseMaxRowList[i], Expr(yTBD), UCL, Expr(txtTBD), UCLtxt));
);
Re: Graficar límites inferior/superior y promedio en un gráfico de controlAquí hay una secuencia de comandos muy aproximada que extraerá los valores de la tabla de límites y los colocará en el gráfico. Le sugiero que se tome el tiempo de leer la Guía de secuencias de comandos utilizando el código a continuación para aprender exactamente cómo el código hace lo que hace.
Ayuda==>Libros==>Guía de secuencias de comandos

Names Default To Here( 1 );
// Open the sample data table
dt = Open( "$SAMPLE_DATA\Quality Control\Pickles.jmp" );
// There isn't an adequate column to be used as a Phase column in the sample
// data table, so create one
dt << New Column( "MyPhase", character, formula( Char( Floor( Row() / 13 + 1 ) ) ) );
// Run the control Chart
ct = dt << Control Chart(
Phase( :MyPhase ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Acid, Individual Measurement( Phase Level( "1" ), Phase Level( "2" ) ), Moving Range( Phase Level( "1" ), Phase Level( "2" ) ) )
);
// Create a list called byPhase of the each of the Phase values
Summarize( dt, byPhase = by( :MyPhase ) );
// Find the max row for each phase to determine the X position on the chart
// for the placement of the text values
PhaseMaxRowList = {};
For( i = 1, i <= N Items( byPhase ), i++,
Insert Into( PhaseMaxRowList, Max( dt << get rows where( :MyPhase == byPhase[i] ) ) )
);
// Add the text to the chart
framebox = Report( ct )[frame box( 1 )];
framebox << Add Graphics Script(
Text Color( "Black" );
// Loop across the phases and add the 3 text values by pulling their values from the table
// and reformating the values
For( i = 1, i <= N Items( byPhase ), i++,
LCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i )] << get)[1];
LCLtxt = "LCL=" || Format( LCL, "Fixed Dec", 5, 2 );
Avg = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + N Items( byPhase ) )] << get)[1];
Avgtxt = "Avg=" || Format( Avg, "Fixed Dec", 5, 2 );
UCL = (Report( ct )["Individual Measurement of Acid"][Number Col Box( i + (N Items( byPhase ) * 2) )] << get)[1];
UCLtxt = "UCL=" || Format( UCL, "Fixed Dec", 5, 2 );
Text( Center Justified, {PhaseMaxRowList[i] - 2, LCL + .1}, LCLtxt );
Text( Center Justified, {PhaseMaxRowList[i] - 2, Avg + .1}, Avgtxt );
Text( Center Justified, {PhaseMaxRowList[i] - 2, UCL + .1}, UCLtxt );
);
);Re: Graficar límites inferior/superior y promedio en un gráfico de controlHola de nuevo,
Entonces, el software antiguo que usé en el pasado es Minitab.
Respondiendo a su pregunta, los valores se trazan automáticamente desde el software y también por fase (vea la imagen a continuación).
En el ejemplo que compartí antes, no hay fases.
Sé que he pedido demasiado, pero ¿podría darme instrucciones sobre cómo incluir estas acciones (eliminar tablas y trazar valores en los gráficos) usando un script?
Gracias de nuevo.

Re: Graficar límites inferior/superior y promedio en un gráfico de controlLos valores se pueden agregar al gráfico. Si no hay fases, los valores se muestran como parte del gráfico

Pero si los datos tienen fases, los valores, como está señalando, están en una tabla al lado del gráfico, y los quiere en el gráfico. Si su software anterior le permitía agregar manualmente los valores, entonces puede hacer lo mismo dentro de JMP simplemente anotando el gráfico

Si necesita que esto se haga programáticamente, entonces se podría usar un script para simplemente leer los valores de la tabla mostrada y colocarlos en el gráfico IR.
Noté en su ejemplo de su software anterior, que solo se mostraba un conjunto de límites, aunque parecía que había diferentes fases. ¿Fue porque los límites eran los mismos para todas las fases?
Re: Graficar límites inferior/superior y promedio en un gráfico de controlYo soy el que entendió mal. Ha surgido este tema antes de .
Re: Graficar límites inferior/superior y promedio en un gráfico de control
Hola, gracias por la respuesta rápida.
Creo que no soy tan claro en mi explicación. Necesito trazar los valores para las líneas inferior, superior y promedio.
Vea a continuación el ejemplo que estoy buscando. A la izquierda, el software que usé en el pasado.
Si puedo trazar los valores de la tabla Mostrar límites de resúmenes, puedo eliminar la tabla para informar (el mejor diseño para poner en una presentación).

Re: Graficar límites inferior/superior y promedio en un gráfico de controlPuede hacer doble clic en el eje vertical y agregar líneas de referencia, o agregar un script de gráficos personalizado al cuadro del gráfico haciendo clic con el botón derecho en este. Para la segunda opción, haga 'Ayuda > Índice de secuencias de comandos' y busque 'Línea H'.