¿Cómo puedo usar una columna como línea de referencia para una tabla bivariada? Tengo una tabla de datos con 4 columnas como límite de control superior, límite de advertencia superior, límite de advertencia inferior y límite de control inferior. La tabla de datos también tiene una columna con muchas variables. Hay un valor específico de límites para cada variable. Estoy tratando de trazar el valor frente al tiempo por variable, pero me gustaría que se agreguen los límites para ese gráfico de variable específico en el eje y.
Adjunté el archivo jmp de clase grande como ejemplo, pero agregué UCL, CL y LCL. Lo que quiero es graficar peso (mi valor) vs altura (tiempo) por sexo (variable). Pero me gustaría que la columna UCL, CL y LCL se muestre como límites en el eje y en su gráfico de variables apropiado. ¿Espero que esto sea un poco claro? Cualquier ayuda será apreciada.
Preguntas rápidas. ¿Qué sucede si tengo varios grupos Por con diferentes tipos de límite en lugar de solo por (: sexo)?
Summarize( dt, byVals = by( :sex, :age ) );
UCL = :UAL[(dt << get rows where( :sex, :age == byVals[i] ))[1]];
La realidad es que los gráficos UWL y LWL están fallando.Simplemente no ve el problema en el gráfico UWL.Parece que cuando especifica Agregar línea de referencia a un gráfico cuando el valor del gráfico es un valor faltante, ".", el código deja de funcionar a partir de ese momento para el gráfico.En el caso del gráfico UWL, ha enumerado todas las líneas de referencia que desea que se muestren, antes de que el código deje de funcionar cuando se encuentra con el valor que falta para la línea de referencia LWL.Sin embargo, en el gráfico LWL, la línea de referencia UWL se intenta antes que la línea de referencia LWL y el código deja de funcionar cuando encuentra el valor que falta para la línea de referencia UWL.Existen varias formas diferentes de solucionar esto, a continuación se muestra una forma de manejar esto
Names Default To Here( 1 );
dt = Current Data Table();
// Get all of the by values, since separate code will have to be added for each
Summarize( dt, byVals = by( :sex ) );
// Generate the Plot code
op = Overlay Plot(
X( :height ),
Y( :weight ),
by( :sex ),
SendToReport(
Dispatch(
{},
"101",
ScaleBox,
{Label Row( Label Orientation( "Vertical" ) )}
)
)
);
For( i = 1, i <= N Items( byVals ), i++,
// Get the LCL and UCL values for this by group. UWL is only for F and LWL is for M
UCL = :UAL[(dt << get rows where( :sex == byVals[i] ))[1]];
LCL = :LAL[(dt << get rows where( :sex == byVals[i] ))[1]];
UWL = :UWarnL[(dt << get rows where( :sex == byVals[i] ))[1]];
LWL = :LWarnL[(dt << get rows where( :sex == byVals[i] ))[1]];
show(byvals[i],ucl,lcl,uwl,lwl);
// Make sure the UCL and LCL values are displayed
chartMin = Min( :weight[dt << get rows where( :sex == byVals[i])]);
chartMax = Max( :weight[dt << get rows where( :sex == byVals[i])]);
If(LCL < chartMin, chartMin = LCL );
If(UCL > chartMax, chartMax = UCL );
chartRange5% = (chartMax - ChartMin)/20;
chartMin = chartMin - chartRange5%;
chartMax = chartMax + chartRange5%;
// Generate the code to produce the LCL and UCL reference lines
Eval(
Substitute(
Expr(
op << SendToByGroup(
{:sex == __byVals__},
Y Axis[1] << {{Min( __min__ ), Max( __max__ ),
Add Ref Line( __UCL__, "Solid", "Medium Dark Red", "UAL", 1 ),
Add Ref Line( __LCL__, "Solid", "Medium Dark Red", "LAL", 1 ),
Add Ref Line( __WLVal__, "dotted", "Medium Dark Red", __WL__, 1 )
}}
)
),
Expr( __byVals__ ), byVals[i],
Expr( __UCL__ ), UCL,
Expr( __LCL__ ), LCL,
Expr( __WLVal__ ), If(isMissing(UWL)==0,UWL,LWL),
Expr( __WL__ ), If(isMissing(UWL)==0,"UWL","LWL"),
Expr( __min__ ), chartMin,
Expr( __max__ ), chartMax
)
);
);Aquí también hay un guión.
Seguí adelante y modifiqué su script para lo que necesito. Funciona para lo que necesito; sin embargo, ahora que agregué una línea de referencia adicional, tengo problemas. Se adjunta un ejemplo general. Se adjuntan Bigclass con columnas adicionales y el script que modifiqué. Estoy tratando de incluir un límite de advertencia superior, pero el valor solo estará disponible para el sexo F. Y para el grupo M hay un límite de advertencia inferior. Cuando ejecuto el script, aparecerá la UWL para el primer gráfico, que es para el grupo F, pero la LWL no aparecerá en el segundo grupo de gráficos M. ¿Alguna idea de como solucionar esto?
Justo lo que necesito. Esto solo funciona en JMP12, por supuesto. Gracias.
Hay una pista de discusión que ha cubierto esto antes.Ver:
Definir UCL/LCL en columnas