¿Cómo ejecutar una consulta al pasar el mouse, utilizando datos del punto de datos subyacente?Hola,
Me gustaría ejecutar una consulta de base de datos al pasar el mouse.
En mi caso tengo muchos millones de imágenes pero solo me interesa ver muy pocas, una a la vez.
Realicé una simulación de un caso utilizando datos de conjuntos de datos de Big Class y Big Class Families.
Este es el escenario:
De ' Clase grande 'Trazo peso versus altura.
Como cuestión de interés, quiero ver cómo es JAMES.
Tengo una foto de él en ' Familias de clase grande ', así que pensé que podría echar un vistazo ejecutando una consulta cuando pase el mouse sobre el marcador de JAMES en el gráfico de dispersión de GB.
He intentado aprovechar la función Hover Label / Paste Graphlet. En el siguiente script puede ver que la consulta se puede realizar fácilmente, pero desafortunadamente he tenido que codificar "JAMES" en la consulta.
Lo que necesito es que el nombre "JAMES" se coloque en una variable al pasar el mouse por encima y luego se use en el SQL. De esa manera, podría mirar la imagen de cualquier persona simplemente colocando el mouse sobre el (los) punto (s) de interés.
Names Default To Here( 1 );
dt = Open( "$Sample_Data/Big Class.jmp" );
Graph Builder(
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Set Graphlet(
Picture(
dt = Open( "$Sample_Data/Big Class Families.jmp" );
//ImageFor = "JAMES";
ImQ = Query(
Table( dt, "t1" ),
"SELECT name, picture From t1 WHERE name = \!"JAMES\!" "
);
)
)}
)
)
);La aplicación final es para la revisión de obleas de semiconductores, donde después de hacer un mapa de obleas basado en la ubicación de los defectos, la consulta volvería a la base de datos y extraería la imagen del defecto (s) de interés. Cuando el número de defectos es en ocasiones bastante grande, no es práctico cargar todas las imágenes en la tabla de datos para fines de revisión.
Gracias,
Felipe
GráficosScriptingRe: ¿Cómo ejecutar una consulta al pasar el mouse, usando datos del punto de datos subyacente?Hola @jpol ,
Este es un ejemplo realmente genial, y tienes el 99% allí.
La variable que está buscando está en el contexto local:
ImageFor = local:_name;
Las extensiones de Graphlet JSL se ejecutan dentro de un bloque local que llamamos Contexto de ejecución de etiqueta flotante, o HLEC para abreviar. Contiene variables con datos y metadatos (como en, nombres de columna) extraídos de la definición del gráfico y el elemento visual subyacente. Puede encontrar la documentación de las variables HLEC aquí.
En el fragmento de código anterior, aproveché el hecho de que el contenido de las columnas etiquetadas está disponible en el HLEC por nombre (con un prefijo "_") pero también podría haber obtenido el contenido de cualquier columna en la tabla subyacente usando una referencia de índice directo, así:
ImageFor = Column(local:_dataTable, "name")[local:_firstRow];
Es importante usar el comando Column () aquí para asegurarse de que está obteniendo el valor de la tabla asociada con el gráfico, y no el que abrió para obtener la imagen.
Consulte los scripts adjuntos que implementan su diseño y luego evolucione para mostrar la imagen en las miniaturas y solo abra la tabla secundaria al hacer clic.
También puede consultar estas discusiones de la comunidad que tratan sobre escenarios similares:
* https://community.jmp.com/t5/Discussions/Hover-graphlet-from-another-data-table/mp/296005
* https://community.jmp.com/t5/Discussions/Hover-label/td-p/287358
En el intercambio de archivos de la comunidad, Visor de etiquetas y Lector Wiki , son ejemplos de personalizaciones avanzadas de graphlet que muestran cómo mostrar varias imágenes e imágenes externas, respectivamente.
Por último, pero no menos importante, un enchufe descarado para mi próxima Presentación Discovery en Graphlets y su "plomería" subyacente.
https://community.jmp.com/t5/Discovery-Summit-Americas-2020/From-Details-on-Demand-to-Wandering-Workflows-Getting-to-know/ta-p/281539
Salud,
Nascif
Re: ¿Cómo ejecutar una consulta al pasar el mouse, usando datos del punto de datos subyacente?Hola Nascif,
Gracias por su pronta respuesta y excelente solución. Esta es exactamente la funcionalidad que estaba buscando.
Intentaré crear un ejemplo de la aplicación final y compartirlo contigo.
Sláinte,
Felipe
Re: ¿Cómo ejecutar una consulta al pasar el mouse, usando datos del punto de datos subyacente?¡Excelente!
Deseando que llegue.Re: ¿Cómo ejecutar una consulta al pasar el mouse, usando datos del punto de datos subyacente?Hola,
Disculpas por la demora en comunicarte con la demostración prometida.
En el enlace de video a continuación, verá la aplicación en uso.
Enlace: https://www.loom.com/share/73150b6a45654d789a6d040bb661cddf
Del video:
Utilizando JMP, los datos de defectos se recopilan de la base de datos de la herramienta de inspección.
JMP luego resume los conteos de defectos por lote / oblea y les muestra un gráfico de líneas.
Si hay una oblea de interés, simplemente coloco el cursor sobre el marcador de recuento de defectos y se dibuja un diseño de defecto de oblea utilizando los datos recopilados previamente.
Habiendo seleccionado una oblea de interés, puedo colocar el cursor sobre un marcador de defecto, en el mapa de obleas, que ejecutará una consulta SQL en la base de datos de imágenes y mostrará la imagen del defecto.
De esta forma, no es necesario almacenar un gran número de imágenes de defectos en la tabla de datos. Solo recuerde y revise las pocas imágenes de interés.
Gracias por su apoyo en la creación de scripts.
- Felipe
PD Presentaré esta aplicación en el Nordic JMP User Group el 9 de octubre:)
Re: ¿Cómo ejecutar una consulta al pasar el mouse, usando datos del punto de datos subyacente?Usted acaba de alegrarme el día, buen señor.
¡Esto es realmente asombroso!
Gracias,
Nascif