<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
A menudo trabajo con datos con muchos valores atípicos, y actualmente no es práctico filtrarlos todos. Quiero mostrar información usando Graph Builder, con el Color cambiado por Column Switcher, y la escala del color actualizado según la columna seleccionada.
Esto funciona muy bien para los datos de una sola columna. Sin embargo, cuando uso Column Switcher, el objeto Graph Builder (gbObj) se elimina (log = referencia de objeto eliminado [] ). Sin el gbObj, no puedo volver a escalar el gráfico, y JMP arroja el error: Send Expects Scriptable Object en acceso o evaluación de 'Send' .
El siguiente código ilustra este problema.
La referencia a la ventana, cusRpt , sigue siendo válido, y puedo obtener referencias a la OutlineBox del generador de gráficos. Desafortunadamente, no sé qué Caja de presentación para hacer referencia al escalar el color. ¿Alguien sabe cómo ayudar con este problema?
Gracias,
Brian
/ * Iniciar Script * /
dtData = Abrir ("$ SAMPLE_DATA / Semiconductor Capability.jmp");
////////////////////////////////////////////////// ///////////////////////////////////////
/ *
setContoursGB (toWindow, LV, HV, numContours)
Función para establecer contornos en un objeto Graph Builder = toWindow.
Los contornos están igualmente espaciados entre LV y HV, con contornos numContours.
* /
////////////////////////////////////////////////// ///////////////////////////////////////
setContoursGB = Función ({toWindow, LV, HV, numContours},
{toWindow, locContours, LV, HV, numContours, i},
locContours = 1 :: numContours;
Para (i = 1, i <= numContours, i ++,
locContours = LV + (i-1) * (HV-LV) / (numContours-1));
aWindow << SendToReport (
Envío(
{},
"400",
ScaleBox,
{Modelo de leyenda (
1,
Propiedades (
0,
{gradiente(
{Tema de color ("Cool to Warm"),
Niveles de etiqueta (
locContours
), Ancho (12)}
)}
)
Propiedades (1, {Marcador ("Tubería"), Color de relleno (0)})
)}
))
);
////////////////////////////////////////////////// ///////////////////////////////////////
/* Ventana abierta */
custRpt = Nueva ventana ("Análisis",
AnaNotesBox = Cuadro de esquema ("Notas de análisis",
Cuadro de texto ("Información ..."),
)
);
/ * Anexar el objeto Graph Builder (GB) * /
custRpt << adjuntar
gbObj = Generador de gráficos (
Tamaño (570, 374),
Mostrar panel de control (0),
Variables (X (: ID de oblea en ID de lote), Y (: SITIO), Color (: NPN1)),
Elementos (puntos (X, Y, Leyenda (1), Jitter (1)))
SendToReport (
Envío(
{},
"400",
ScaleBox,
{Modelo de leyenda (
1,
Propiedades (
0,
{gradiente ({Tema de color ("Cool to Warm"), Ancho (12)})}
)
Propiedades (1, {Marcador ("Tubería"), Color de relleno (0)})
)}
)
Dispatch ({}, "Graph Builder", FrameBox, {Marker Size (5)})
)
));
/ * Abrir el conmutador de columnas * /
csObj = gbObj << Column Switcher (
NPN1,
{NPN1, PNP1, PNP2, NPN2, PNP3, IVP1, PNP4, NPN3, IVP2, NPN4, SIT1, INM1,
INM2, VPM1, VPM2, VPM3, PMS1, SNM1}
);
/ * Ejecutar a través de ejercicios de escala GB. * /
popup = Nueva ventana ("Mensaje",
<< Modal, cuadro de texto ("A continuación, aplicar un mayor contraste de color."),
SpacerBox (Tamaño (0,20)),
HCenterBox (Cuadro de botones ("OK"))
);
setContoursGB (gbObj, 110,120,11);
custRpt << Traer la ventana al frente;
popup = Nueva ventana ("Mensaje",
<< Modal, cuadro de texto ("Ahora, jugar con escala"),
SpacerBox (Tamaño (0,20)),
HCenterBox (Cuadro de botones ("OK"))
);
setContoursGB (gbObj, 105,115,11);
espera (1);
setContoursGB (gbObj, 115,125,11);
espera (1);
setContoursGB (gbObj, 113,117,11);
espera (1);
setContoursGB (gbObj, 110,120,11);
/ * Utilice el conmutador de columnas. Estamos bien aquí. * /
popup = Nueva ventana ("Mensaje",
<< Modal, cuadro de texto ("Ahora, coloque el conmutador de columnas en PNP1."),
SpacerBox (Tamaño (0,20)),
HCenterBox (Cuadro de botones ("OK"))
);
csObj << Siguiente;
/ * Intenta volver a escalar GB, y las cosas se rompen. * /
popup = Nueva ventana ("Mensaje",
<< Modal, cuadro de texto ("Intente volver a escalar Graph Builder."),
SpacerBox (Tamaño (0,20)),
HCenterBox (Cuadro de botones ("OK"))
);
setContoursGB (gbObj, 200,400,11);
/ * Fin de guión * /