Obtener datos de escaneo de líneas de trazados de contorno en jmpHola,
Tengo un gráfico de contorno y me gustaría ver cómo varían los datos a lo largo de una línea en el gráfico de contorno.
Por ejemplo, el gráfico de contorno es un gráfico de contorno del espesor de la película. Y me gustaría ver cómo varía el grosor a lo largo de una línea que dibujo en cualquier parte del trazado del contorno.
es posible?
Yoga
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpYoga,
Existen varios métodos para agregar un script a una tabla de datos.Creo que JMP podría hacerlo más fácil. Para su información, este script muestra solo 3 métodos para agregar un script.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myScript = Expr(Distribution( Column( :Height, :Weight ), By( :sex )) );
//---hard coded method below
//dt << New Script("New Script",Distribution( Column( :Height, :Weight ), By( :sex )) );
//--or use the syntax below that uses expression substitution then Eval() to run it
//Eval( Substitute(Expr( dt << New Script( "New Script", _xx ) ), Expr(_xx), NameExpr(myScript) ) );
//---or use Eval Expr() that does the substitution and Eval() that runs it
Eval( Eval Expr(dt << New Script("New Script", Expr(NameExpr( myScript) ) ) ) );
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpHola morgan,
Hubo algunos errores de sintaxis (menores) en el código de muestra que envió para mi ejemplo. Me tomó algo de tiempo (soy muy nuevo en las secuencias de comandos jmp) arreglarlo, pero finalmente funciona como quiero. Gracias de nuevo por la ayuda. Adjunto el script modificado a continuación para otras personas que lo deseen.
También me di cuenta de que si el script se almacena en la tabla de datos, no necesito especificar ninguna ruta de ubicación (larga). Curiosamente, no puedo guardar un nuevo archivo de script en la tabla de datos. Debe guardarse como un archivo jsl independiente. Para solucionarlo, abro un script ya existente en mi tabla de datos y lo modifico para ingresar el nuevo script.
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpHola morgan,
Gracias de nuevo. Se lo agradezco mucho. Modificaré mis scripts en consecuencia.
yoga
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpTengo experiencia con datos de semiconductores, por lo que entiendo querer hacer un análisis para cada oblea o cada estructura.De tu declaración " Funciona para un objeto. Si hay varios objetos, no estoy seguro de cómo agruparlos."Supongo que su archivo tiene una columna llamada oblea y/o estructura.
En primer lugar, no es necesario que una tabla de datos se llame dt. Reutilizo referencias de variables, pero llamar a todas estas tablas dt podría generar confusión en un script más grande.Las colisiones de nombres después de la sintaxis y los errores tipográficos son las causas más frecuentes por las que los scripts no funcionan.
Para su guión, si está de acuerdo con todos los gráficos colocados secuencialmente en un diario, aquí está mi modificación sugerida a su guión para manejar "por grupo". Hay más debajo de este script.
subp = dt << Bivariate ( Y(:Name( "Rdson" )), X(:X), By(:Wafer) );
xx = subp << Find (Outline Box ("Bivariate ?") );
//this returns all outline boxes with Bivariate in the title, should be one for each wafer
//This adds the title but maintains the By Wafer = xxxxxxx
For(i=1, i <=nitems(xx), i++,
ttl = xx[i] << get title;
p = Contains( ttl, "By"); //find the position of the word By
xx[i] << Set Title(" Rdson Contour at Y==0 " || substr(ttl, p, 100) ); //something large
);Sin embargo, existen otros métodos que le permiten diseñar un informe para que pueda ver cada oblea con cada uno de los escaneos uno al lado del otro.A continuación se muestra un ejemplo que utiliza Big Class. Adjunto un script (ver archivos). Al no tener una mesa de prueba, no puedo garantizar que funcione, pero quizás quieras probarla.
Names default to here(1);
open("$sample_data/Big Class.jmp");
nw = new window("example", lineupbox(ncol(2), Distribution(
Continuous Distribution( Column( :weight, Horizontal Layout(1) ) ),
Histograms Only,
By( :age, :sex )
)));
nw << journal window();
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpHola Morgan (y a todos),
Logré hacerlo funcionar para mi tabla de datos. También me di cuenta de que no necesito pasar por el trazado de contorno todo el tiempo. Podría hacer una subtabla donde todo X==0 y obtener los datos a lo largo de Y y viceversa, y también es posible cualquier otra coordenada que desee. El guión que proporcionaste ayudó bastante.
Ahora, estoy tratando de descubrir cómo hacerlo en varios objetos. Mi script de muestra está a continuación. Funciona para un objeto. Si hay varios objetos, no estoy seguro de cómo agruparlos. ¿Alguna aportación sobre esto? Lo apreciaría mucho.
En mi script, ahora obtengo todos los datos de un objeto. Sin embargo, tengo que repetir lo mismo con otro objeto. Todos los objetos caen en una categoría, digamos "Obleas" o "Estructura"...
Los nombres están predeterminados aquí (1);
dt = open("C:/Usuarios/yoga_***/***.jmp");
dt << Seleccionar dónde (:Y == 0);
dt << Subconjunto(Tabla de salida("Subconjunto"), Filas seleccionadas (1), Columnas seleccionadas (0));
dt = Tabla de datos("Subconjunto");
subp = dt << Bivariado ( Y(:Nombre( "Rdson")), X(:X) );
report(subp)[OutlineBox(1)] << Establecer título ("Contorno Rdson en Y==0");
subp << Ventana del diario();
subp << Cerrar ventana();
dt = open("C:/Usuarios/yoga_***/***.jmp");
dt << Seleccionar dónde (:X == 0);
dt << Subconjunto(Tabla de salida("Subconjunto2"), Filas seleccionadas (1), Columnas seleccionadas (0));
dt = Tabla de datos("Subconjunto2");
subp = dt << Bivariado ( Y(:Nombre( "Rdson")), X(:Y) );
report(subp)[OutlineBox(1)] << Establecer título ("Contorno Rdson en X==0");
subp << Ventana del diario();
subp << Cerrar ventana();
dt = open("C:/Usuarios/yoga_***/***.jmp");
dt << Seleccionar dónde (0,95 < :X/:Y < 1,05);
dt << Subconjunto(Tabla de salida("Subconjunto3"), Filas seleccionadas (1), Columnas seleccionadas (0));
dt = Tabla de datos("Subconjunto3");
subp = dt << Bivariado ( Y(:Nombre( "Rdson")), X(:X) );
report(subp)[OutlineBox(1)] << Establecer título ("Contorno Rdson en X==Y");
subp << Ventana del diario();
subp << Cerrar ventana();
close(Tabla de datos("Subconjunto"), NoSave);
close(Tabla de datos("Subconjunto2"), NoSave);
close(Tabla de datos("Subconjunto3"), NoSave);
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpHola morgan,
Esto es exactamente lo que quiero. Normalmente hago esta subrutina sin script. Este guión ayuda.
Ahora, estoy tratando de descubrir cómo integrar este script en mis requisitos actuales.
Te mantendré informado.
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpHola morgan,
Gracias por la respuesta detallada. Intentaré mantenerlos (a todos) informados.
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpExisten varios métodos para obtener una vista en sección transversal de un contorno.Sin embargo, es posible que no sea una declaración integrada o única que pueda estar disponible en otros programas.
He adjuntado un script llamado ContornoCrossSection.jsl . Utiliza los datos de muestra JMP Little Pond.jmp. Los datos representan las profundidades de un estanque. Crea un contorno, una vista de sección transversal única (usando Ajustar Y por X, Bivariado) y una vista comparativa de 3 secciones transversales (usando Graph Builder).
Si no está familiarizado con JSL, simplemente ejecute el programa. Lo probé en JMP12, 13 y 14. La clave es la opción que puede obtener de las opciones de trazado de contorno.En el gráfico de contorno de JMP, seleccione el menú de triángulo rojo, seleccione Ahorrar , luego seleccione Generar cuadrícula .Especifique el número de sectores X e Y y se generará una xygrid.
Aquí hay algunas otras ideas:
- Si la cantidad de puntos de muestra no es densa, considere crear una curva más suave con una red neuronal u otra plataforma. A veces la triangulación no funciona. Con una función existen varios métodos para obtener una sección transversal.
- Aprenda a utilizar Contour Profiler con una malla. Luego agregue un filtro de datos local desde el menú y establezca el rango de Y o X en algo así como 50 <=Y <= 50.1 Todo esto es interactivo. Hay otras opciones en el generador de perfiles.
- Si puede obtener esto fácilmente desde otro programa al que tenga acceso, puede acceder a R, MatLab, SAS y, en JMP14, Python usando JSL y Ejecutar programa.
Espero que esto ayude.
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpHola cameron,
No, no es una spline suavizante. Parece que no hay forma de obtenerlo ahora a menos que siga el camino sinuoso de obtener subconjuntos de datos.
Sin embargo, no debería ser demasiado difícil agregar esa funcionalidad en jmp. Suele estar presente en muchos softwares que asignan parámetros en el XY para generar un gráfico de contorno. Y podemos jugar a ver cómo varía a lo largo de cualquier línea que dibujemos por el contorno.
Re: Obtener datos de escaneo lineal de trazados de contorno en jmp¿Está describiendo una sección transversal de la película como un perfil transversal en un corte particular a lo largo de la dirección descendente de la red? Si es así, no creo que haya ninguna forma de obtenerlo del perfilador de contorno.
¿Necesita dibujar una línea que interpola entre los puntos de datos en esa sección transversal como una spline suavizada?
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpHola cameron,
No exactamente. Estoy buscando la variación del parámetro cuando dibujo una línea de un extremo al otro de mi trazado de contorno. Intentaré ilustrarlo de la mejor manera posible aquí.
Tengo un gráfico de contorno del espesor de la película que varía según un sustrato. Luego, podría elegir cualquier X (o Y) y dibujar una línea de un extremo al otro. Supongamos que quiero que todos los puntos en Y=0 pero X varíen de -50 a +50. Dibujo una línea horizontal de -50 a +50. Luego, me gustaría ver cómo varía el grosor a lo largo de esa línea y aparece un gráfico en el costado.
Podría hacer esto de una manera sinuosa. Tome el conjunto de datos. Luego, toma otro subconjunto de todos los puntos de datos con Y=0. Luego, trace el espesor frente a X (para todo Y=0).
Me gustaría que esto se pueda hacer en segundo plano cuando simplemente dibujo una línea en cualquier lugar.
Re: Obtener datos de escaneo lineal de trazados de contorno en jmpHola @Yoga ,
¿Estás diciendo que quieres trazar puntos de datos encima de tu gráfico de contorno?Si es así, mira este hilo: https://community.jmp.com/t5/Discussions/Adding-specific-data-points-with-labels-to-a-contour-plot/mp/52455