Asociación poli seg con estados de tabla / fila de datos¿Hay una manera de asociar los polisegs con una tabla de datos como puede con markerseg () para que la selección del segmento también resalte las filas?
Por ejemplo
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt_sum = dt << Summary(
Group( :sex ),
Freq( "None" ),
Weight( "None" )
);
dt_sum:sex << Set Labelled;
gb = graphbox();
fb = gb[framebox(1)];
new window("Test",
gb
);
fps = polyseg([70, 90, 90, 70], [30, 30, 10, 10]);
fb << append seg(fps);
mps = polyseg([10, 30, 30, 10], [30, 30, 10, 10]);
fb << append seg(mps);
ms = markerseg([80, 20], [50, 50], row states(dt_sum));
fb << append seg(ms);
//can I assign fps to row 1 and mps to row 2 so that when I click them
// they select in both tables (since the tables are linked)Re: Asociación poli seg con estados de tabla / fila de datosOh genial Los he usado, pero olvidé que permitía estados de fila. ¡Gracias!
Re: Asociación poli seg con estados de tabla / fila de datosDescubrí que shapeseg () me permite realmente mapear a estados de fila, lo que me costó un poco aprender a usar, pero ahora está funcionando bastante bien.
Re: Asociación poli seg con estados de tabla / fila de datosVaya, olvidé agregar el script para encontrar los centros de polígonos. Creo que es una función de JMP 14. Entonces, si está en una versión anterior, use el primer punto en el polígono, haciendo que el punto sea muy pequeño y el ancho de línea del polígono 2 o más, entonces el punto debería ser "invisible".
Tenga en cuenta que primero creo el punto para que esté en el fondo. Como notó que JMP implementa completamente, todas las características de estado de fila por punto. Por lo tanto, los modos de selección como desvanecidos cuando no están seleccionados son visibles para los puntos.
Esta solución es solo parcial, ya que solo permite que los colores se sincronicen con la tabla. Sería bueno tener esta característica para curvas y polígonos. También es bueno tener acceso al mousebox / callback asociado con cada framebox incorporado, o hacer referencia a un framebos y agregar la mousebox.
Re: Asociación poli seg con estados de tabla / fila de datosVince
Prueba el guión adjunto. No es una solución completa. Esta secuencia de comandos se basa en el controlador de estado de fila, obviamente integrado por los Segmentos de marcador. Sin el marcador segs, esta secuencia de comandos tendría que agregar un controlador de estado de fila en esta pantalla. La función del controlador tendría que enviar un Inval al framebox y la ventana de actualización cuando cambiara el estado de una fila.
Para extender este script, encontraría el centro del polígono y agregaría un marcador para que todos los scripts adicionales fueran manejados por el código existente de JMP incorporado.
Espero que esto ayude.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt_sum = dt << Summary(
Group( :sex ),
Freq( "None" ),
Weight( "None" )
);
dt_sum:sex << Set Labelled;
gb = graphbox();
fb = gb[framebox(1)];
new window("Test",
gb
);
mpolyseg = Function({xmat, ymat, states=[]},{i,scrp=Expr(Glue()), c, rs=0},
show(states);
if(
IsMatrix(states) & nrow(states)==0
| //or
IsList(states) & nitems(states) ==0,
states=J(nrow(xmat),1,0),
Type(states) == "Table",
rs=1
);
For(i=1, i<=nrow(xmat), i++,
If(rs,
c = Parse(EvalInsert("Color Of(As Row State((^states^<<GET row="" states=""></GET>Esta función también permite especificar estados fijos o colores.
Otro método sería crear un controlador de estado de fila y buscar todas las ventanas y encontrar todos los frameboxes (usando xpath) y la ventana invalal y actualizar todas ellas.