Diferentes límites de especificación en un gráfico de variabilidadHola,
Estoy creando un gráfico de variabilidad independiente por OVL_UDL y PARAMETER_NAME con cuatro variables X. Lo hago mediante un script con un bucle for. Quiero poder mostrar el valor de especificación en los gráficos cuyo valor está contenido en la misma tabla de datos. Sin embargo, tengo un límite diferente dentro de cada gráfico (por bucle de variable) y también entre gráficos (por OVL_UDL y PARAMETER_NAME). He buscado en el foro pero no pude encontrar una forma de hacer esto usando JSL.
overunder = Associative Array( dt:OVL_UDL << Get Values ) << Get Keys;
For( i = 1, i <= N Items( overunder ), i++,
win = New Window( "window",
var = dt2 << Variability Chart(
Y( :VALUE ),
X( :ROUTE, :OPERATION, :PRODUCT, :ANALYTICAL_ENTITY, :DATA_COLLECTION_TIME ),
Connect Cell Means( 1 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
AIAG Labels( 0 ),
Where( :OVL_UDL == overunder[i] ),
By( :PARAMETER, :OVL_UDL ),
SendToReport(
Dispatch(
{"Variability Chart for VALUE"},
"Variability Chart",
FrameBox,
{Row Legend(
:Current Layer Scanner,
Color( 1 ),
Color Theme( "JMP Default" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
), Row Legend(
ALT,
Color( 0 ),
Color Theme( "" ),
Marker( 1 ),
Marker Theme( "Solid" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)
)
);
win << save picture;

Automatización y scriptingPersonalización masivaRe: diferentes límites de especificación en un gráfico de variabilidadLo más probable es que esto se pueda hacer mucho más fácilmente con el generador de gráficos que con el gráfico de variabilidad, pero si desea utilizar el gráfico de variabilidad a continuación, se muestra un ejemplo demasiado simplificado con scripts gráficos.
Names Default To Here(1);
dt = Open("$DOWNLOADS/test.jmp");
dt << Delete Rows(Loc(dt[0, "OVL_UDL"], "BC1_BM3"));
var = Variability Chart(
Y(:VALUE),
X(:Loop, :OPERATION, :ANALYTICAL_ENTITY, :DATA_COLLECTION_TIME)
);
spec_table = dt << Summary(
Group(:Loop),
// N Categories(:UP_CONTROL_LMT), // could be used for sanity check
Min(:UP_CONTROL_LMT),
Freq("None"),
Weight("None"),
statistics column name format("column"),
Link to original data table(0),
invisible,
output table("spectable")
);
specs = Associative Array(Column(spec_table, "Loop"), Column(spec_table, "UP_CONTROL_LMT"));
groups = dt << Summary(
Group(Loop, :OPERATION, :ANALYTICAL_ENTITY, :DATA_COLLECTION_TIME),
statistics column name format("column"),
Link to original data table(0),
invisible,
output table("groups")
);
fl_groups = N Rows(Loc(groups[0, "Loop"], "FL"));
sl_groups = N Rows(Loc(groups[0, "Loop"], "FL"));
framebox = Report(var)[frame box(1)];
framebox << Add Graphics Script(
Pen Color("Blue");
Pen Size(1);
H Line(0, fl_groups, specs["FL"]);
H Line(fl_groups, fl_groups + sl_groups, specs["SL"]);
);
framebox << Y Axis(Max(15));

Re: diferentes límites de especificación en un gráfico de variabilidadMuchas gracias. Creo que funciona perfectamente excepto por una cosa. Veo que mantuvo solo un valor OVL_UDL y creó solo un gráfico de variabilidad. Quiero que se cree un gráfico separado para cada variable OVL_UDL. En los datos, debería estar activado para BC1_BM3 (que tiene) pero un gráfico más para BC2_BM3. Intenté poner un ciclo for para iterar su script para cada OVL_UDL pero no pude mostrar los límites. ¿Alguna idea de cómo podemos lograr eso?
Gracias
Re: diferentes límites de especificación en un gráfico de variabilidadEl bucle debería funcionar bien, pero debe usar los límites y tamaños de grupo correctos para cada uno de los gráficos. A continuación se muestra un ejemplo rápido y sucio (definitivamente limpiaría mucho este código, pero debería funcionar como una especie de punto de partida).
Ver más...
(El gráfico de variabilidad también se puede crear utilizando la opción Por, pero requerirá un tipo de bucle un poco diferente, ya que lo más probable es que se repita sobre los gráficos de variabilidad y no sobre los parámetros).
Re: diferentes límites de especificación en un gráfico de variabilidadGracias. De alguna manera, cuando itera a través de OVL_UDL, solo mantiene los límites correctos en el último gráfico. Estoy pensando si puedo escribir el script para dividir la tabla en varias tablas (una para eqach OVL_UDL) y ejecutar el script en cada tabla. ¿Cómo puedo escribir un script para abrir un archivo a la vez, ejecutar el script de trazado, abrir el siguiente archivo y ejecutar el mismo script nuevamente?