¿Pase el mouse sobre el punto de datos para mostrar la imagen?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />¿Alguien sabe si esto es posible?¿Pasa el mouse sobre un punto de datos, como un gráfico, y muestra una imagen JPG/GIF en una ventana o algún tipo de cuadro de visualización?
Conozco y uso <Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?
En JMP 15.0 agregamos una función llamada Graphlets que brinda (entre otras cosas) la capacidad de mostrar imágenes a pedido dentro de etiquetas flotantes. La imagen mostrada y lo que sucede cuando haces clic en ella están completamente bajo el control del usuario. Puede recuperar fácilmente una imagen de una columna, de un archivo o de una URL creada dinámicamente en función del contexto del gráfico (por ejemplo, los valores X e Y de su gráfico). No es necesario almacenar imágenes en la tabla (aunque esto también es compatible).
Puede ver esta funcionalidad en acción en el siguiente Intercambio de archivos
https://community.jmp.com/t5/JMP-Scripts/WikiReader-Augmenting-Hover-Labels-with-web-data-and-images/ta-p/237488
Para obtener más información sobre los grafitos, consulte https://www.jmp.com/content/dam/jmp/documents/en/support/jmp15/using-jmp.pdf , página 512.
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Gracias
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Sí, el script anterior aprovecha las columnas de Expresión, que creo que no se introdujeron hasta JMP 12.
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Hola, intenté ejecutar este script, pero aparece un error en " tabla 1 : Foto [ 1 ] = pag ; " indica que el tipo de columna no coincide. Es eso porque uso JMP 10?
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Gracias de nuevo. ¡Ahora todo funciona a las mil maravillas!
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Ver publicación Caja con marco para ratonera y biviariado para cuando tuve exactamente la misma pregunta.
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?¡Gracias! Eso era exactamente lo que necesitaba. Es sorprendente lo que jmp puede hacer.
Sin embargo, aunque ahora se muestra la imagen del chip si hago clic en él, me pregunto por qué el punto de datos (chip) en el mapa ya no está marcado/seleccionado. Pero claro, eso no es realmente necesario...
¡Gracias!
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?MouseTrap debe aplicarse a un cuadro de marco.El generador de gráficos es una pantalla bastante compleja que incluye un cuadro de marco.
ventana = Nueva ventana ( "Mapa de oblea" ,
gb = Tabla de datos ( "Mapa de obleas de tabla de datos" ) << Generador de gráficos (
variables ( X ( : PosX ) , Y ( : Ramillete de flores ) , Color ( : Valor ) ) ,
Elementos ( Puntos ( X , Y , Leyenda ( 9 ) ) ) ,
) ;
) ;
rgb = gb << Informe ;
rgb [ caja de marco ( 1 )] << Agregar secuencia de comandos de gráficos ( Ratonera ( imprimir ( "prueba" ))) ;
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Gracias Ian y msharp. Probaré algunas formas y veré qué soluciones funcionan mejor para nosotros. La función MouseTrap() es definitivamente útil, pero también intentaré ocultar la columna de imagen y comprobar si realmente estamos limitados por la velocidad o la memoria.
EDITAR: Tengo dificultades para agregar la función MouseTrap() al Graph Builder. Estaba buscando una solución como esta:
ex = 20;
exy = 50;
ventana = Nueva ventana( "Mapa de oblea",
gb = Tabla de datos("Mapa de oblea de tabla de datos") << Generador de gráficos(
Variables( X( :PosX ), Y( :PosY ), Color( :Valor ) ),
Elementos (Puntos (X, Y, Leyenda (9))),
Ratonera(
exx = X( :PosX );
exy = Y( :PosY );
Mostrar(exx);
,
Mostrar(exy);
)
);
);
Francamente, solo estaba adivinando mientras insertaba la función MouseTrap(), pero no encontré ninguna información sobre el uso combinado de Graph Builder y MouseTrap.
¿Es posible utilizar la función MouseTrap() con Graph Builder?
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Creo que la respuesta corta es no. No hay muchas capacidades de HOVER al interactuar con gráficos.
Si el usuario 'hace clic' en el punto, hay varias opciones en cuanto a mousetrap() que interactúa con los clics, arrastres, etc. del usuario en un cuadro de gráfico.También puede utilizar un controlador de estado de fila que ejecutará scripts cuando los usuarios interactúen con una tabla de datos. Por ejemplo, al seleccionar un punto en un gráfico también se seleccionará la fila de la tabla de datos, que su controlador podría usar para ejecutar un script.Ambos tienen sus pros y sus contras.
De todos modos, si los recuerdos son el único problema, debería considerar la solución de Ian de simplemente ocultar la tabla de datos y/o la columna.Si le preocupa la velocidad, es decir. el tiempo que lleva generar una imagen/cargar un archivo de imagen en cada celda, solo recomendaría condensar la tabla de datos.¿Sus usuarios NECESITAN ver imágenes de la tabla grande?¿Puede crear subconjuntos de datos para crear conjuntos de datos más pequeños con los que los usuarios puedan interactuar?
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Aunque no lo verifiqué, imagino que las celdas 'vacías' en una columna de expresión casi no tienen gastos generales. Y podría ocultar esta columna o hacer que la tabla sea invisible si es necesario.
Pero si no le gusta este enfoque, consulte 'MouseTrap()' e 'IsCommandKey()' en Ayuda > Índice de secuencias de comandos.
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Hola,
Este ejemplo funciona bien para mí, pero estoy interesado en una solución diferente. El problema es que no me gusta llenar cada fila con una imagen, ya que esto consumiría mucha memoria en una tabla de big data. Teniendo esto en cuenta, mi pregunta es, ¿si es posible ejecutar algún código en una columna de expresión, cuando el mouse está sobre un punto de datos? Luego, la posición X e Y de ese punto podría usarse como argumento en la columna de expresión para abrir la imagen apropiada.
es posible?
¡Muchas gracias!
Re: ¿Pase el mouse sobre el punto de datos para mostrar la imagen?Sí, es posible. La forma más sencilla es simplemente agregar una columna de imágenes y darle a esa columna una propiedad de etiqueta.Vea a continuación un ejemplo.
Names Default to Here(1);table1 = New Table( "one", Add Rows( 1 ), New Column( "pic", Expression, Set Values( {Empty()} ) ));// make random imaged = J(25,50,rgbcolor(randomuniform(),randomuniform(),randomuniform()));p = newimage(d);// store in table1table1:pic[1] = p;// make a new tabletable2 = New Table( "two", Add Rows( 1 ), New Column( "pic", Expression, Set Values( {Empty()} ) ));// put two copies in table 2, from table 1table2:pic[1] = table1:pic[1];table2<table2:pic[2] = table1:pic[1];//Add X/Y columnstable2 << New Column("X", Numeric, Continous, Set Values({1,2}));table2 << New Column("Y", Numeric, Continous, Set Values({2,1}));//label pic columntable2:pic << Label;//open bivariate analysisbiv = table2 << Bivariate( Y( :Y ), X( :X ) );El siguiente script fue adaptado del código de Craige. Re: JMP_12: Incrustar una expresión JSL directamente en una fila si te preguntas qué más está haciendo.