Hola a todos
Estoy usando el generador de gráficos para hacer los gráficos en un informe. Me gusta agregar las líneas de referencia en el gráfico como CL,LCL,UCL. Los tengo en las columnas (por ejemplo, X) en mi tabla. Estoy tratando de llamarlos en el guión como,
{Agregar línea de referencia (:X, "Sólido", "Negro", "LCL", 1 )}
Pero no funciona
Me podría ayudar
Gracias
ColMin y ColMax simplemente tomarán el valor mínimo o máximo de la columna e ignorarán el valor faltante.
Algunos ejemplos rápidos:
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
New Column("Value", Numeric, "Continuous", Format("Best", 12), Set Values([., 1, ., ., 2]))
);
Show(ColMin(:Value));
Show(ColMax(:Value));
//A bit more complicated. Loc gets rows which have non missing value as a matrix
//Then we use that matrix to get values from Value column
//and finally from that we will use only the first index
Show(:Value[Loc(:Value << get as matrix)][1]);
//You can run this in parts to see how it works
//Loc(:Value << get as matrix)
//:Value[Loc(:Value << get as matrix)]
//Will return missing value
Show(:Value[1]);Gracias. funcionó, aunque todavía no sé si me faltan algunos datos en una columna, cómo puedo elegir la celda con datos. Pero en este caso usando las funciones funcionó.

¿Podría proporcionar algún tipo de tabla de datos de ejemplo? No tiene ningún dato real siempre que muestre la idea básica de los datos. Dependiendo de cómo se vean los datos, es posible que ColMin/ColMax funcione como ColMin(dt:UCL).
@jthi , Gracias.
Tengo los límites de control como columnas. Puedo llamar a una celda como UCL[1], pero el problema es que algunas de estas columnas tienen celdas vacías que podrían ser la primera o cualquier otra celda. Quiero agregar la línea Ref de la celda en la columna que no está vacía.
¿Tienes alguna idea de cómo puedo hacer eso?
Gracias
Dependiendo de tus datos podrías hacerlo de esta manera:
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
//add limit columns
dt << New Column("UCL", Numeric, Continuous, Set Each Value(70));
dt << New Column("CL", Numeric, Continuous, Set Each Value(60));
dt << New Column("LCL", Numeric, Continuous, Set Each Value(50));
gb = Graph Builder(Variables(X(:age), Y(:height)), Elements(Points(X, Y, Legend(4))));
axisb = (report(gb)[axisbox(2)]);
axisb << ({
Add Ref Line(dt:UCL[1], "Solid", "Black", "UCL", 1),
Add Ref Line(dt:CL[1], "Solid", "Black", "CL", 1),
Add Ref Line(dt:LCL[1], "Solid", "Black", "LCL", 1)
});O traza esas columnas directamente:

o configúrelos en las propiedades de la columna como límites de especificación:


Todo esto se puede programar si es necesario.
Editar:
Y si quiere decir que tiene establecida la propiedad de la columna de límite de control, requerirá un poco más de secuencias de comandos para obtener los límites de la propiedad de la columna (la parte de análisis dependerá un poco del caso y de cómo se establecen los límites de control, pero la idea debería ser la misma 
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Quality Control/Coating.jmp");
obj = dt << Control Chart(Sample Size(:Sample), KSigma(3), Chart Col(:Weight, XBar, R));
Wait(0);
obj << Save Limits(in Column);
gb = Graph Builder(
Variables(X(:Sample), Y(:Weight)),
Elements(Points(X, Y, Legend(3)), Smoother(X, Y, Legend(4)))
);
//get Control Limits column property and parse limits
colProp = dt:weight << Get Property("Control Limits");
xbarLimits = Words(Char(colProp[1]));
xbarCL = Num(Word(3, xbarLimits[1], "()"));
xbarLCL = Num(Word(2, xbarLimits[2], "()"));
xbarUCL = Num(Word(2, xbarLimits[3], "()"));
//add control limits
axisb = (report(gb)[axisbox(2)]);
axisb << ({
Add Ref Line(xbarUCL, "Solid", "Black", "UCL", 1),
Add Ref Line(xbarCL, "Solid", "Black", "CL", 1),
Add Ref Line(xbarLCL, "Solid", "Black", "LCL", 1)
});