Cambiar el orden de dibujo de los elementos gráficos usando JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola a todos,
Sé que puede cambiar el orden de dibujo de los elementos gráficos haciendo clic derecho en un gráfico, luego haciendo clic en personalizar y luego moviendo el orden de las secuencias de comandos de gráficos usando las flechas arriba/abajo. ¿Hay alguna manera de hacer esto usando JSL? Hay mensajes que puede enviar a Framebox para cambiar el orden de las líneas de cuadrícula y las líneas de referencia, esperaba que hubiera algo similar para los marcadores. También puede cambiar la transparencia de cosas como líneas ajustadas, etc. ¡Gracias!
Re: Cambiar el orden de dibujo de los elementos gráficos usando JSLCon JMP 14.2, las opciones de personalización de gráficos funcionan con comandos jsl como este, con los valores de las variables "Ventana" y "Cuadro de marco", y por lo tanto arbitrarios para este ejemplo:
Window(6)[Frame Box( 1 )] << Dispatch( {}, "Oneway Plot", FrameBox, {Grid Line Order( 3 )})
Puedo hacer este truco para que las líneas de cuadrícula aparezcan encima de los marcadores para las plataformas bivariadas, gráficas de variabilidad y gráficas de contorno, pero no puedo hacer que funcione para la plataforma Oneway más allá de un valor de 3. El marcador está en la quinta posición de forma predeterminada, por lo que necesito que el orden de las líneas de la cuadrícula sea posterior. Si bien el comando anterior con Orden de línea de cuadrícula ( 2 ) u Orden de línea de cuadrícula ( 3 ) funciona bien, no sucede nada cuando uso Orden de línea de cuadrícula ( 4 ) u Orden de línea de cuadrícula ( 5 ). Creo que esto es un error.
Si apunto y hago clic y fuerzo el orden de las líneas de cuadrícula para que sea 5, y luego guardo el script en la ventana del script, obtengo "Orden de línea de cuadrícula (5), Orden de línea de referencia (1)", pero ejecuto el script como está desde el la ventana del script ni siquiera coloca las líneas de cuadrícula en la quinta posición.
Me hago eco del comentario de @nkelleh : " Es desafortunado que no se incluyera un mensaje de 'orden de marcador' junto con los mensajes de 'Orden de línea de referencia' y 'Orden de línea de cuadrícula' para el cuadro de marco". JMP que permite opciones como 'Después/Antes' o 'Último/Primero', de la misma manera que lo hace con la organización de columnas o filas en una tabla de datos, también sería útil aquí.
Re: Cambiar el orden de dibujo de los elementos gráficos usando JSLEn realidad, eso también funciona. No sé por qué no pensé en probar eso. Salud.
Re: Cambiar el orden de dibujo de los elementos gráficos usando JSL¿Ha intentado simplemente agregar el marcador de nuevo al marco después de eliminarlo?
- marcadorSeg1 = bivFrame << Buscar Seg(Marcador Seg( 1 ) );
- marcadorSeg1 << Eliminar;
- bivFrame << appendseg(markerSeg1);
Eso debería hacer que dure en el orden de sorteo.Eliminarlo simplemente lo elimina del árbol, por lo que debería ser seguro volver a agregarlo.
Re: Cambiar el orden de dibujo de los elementos gráficos usando JSL¡Ah, bueno, tenía que preguntar por si acaso!
Gracias por la solución, pude obtener el resultado que estaba buscando al eliminar los marcadores existentes y volver a dibujarlos como sugería el hilo que vinculaste. Pierdes la interactividad de la plataforma en términos de selección de puntos de datos, pero como esto era solo para fines de visualización de datos, me pareció bien.
Gracias de nuevo.
A continuación se muestra el segmento de código que reutilicé para eliminar los marcadores y volver a dibujarlos
//Delete Markers if requiredmarkerSeg1 = bivFrame << Find Seg( Marker Seg(1) );markerSeg1 << Delete;//Script to redraw markers on topbivFrame << Add Graphics Script( For(r=1, r <= NRows(dtMain), r++, y = Column( dtMain, "Voltage" ); x = Column( dtMain, "Temp" ); ms = Combine States( Marker State( Marker Of( Row State( r ) ) ), Color State( Color Of( Row State( r ) ) ) ); Marker(ms, {x, y}); ); );Re: Cambiar el orden de dibujo de los elementos gráficos usando JSLLo siento, ahora lo entiendo.
Con la esperanza de que alguien demuestre que estoy equivocado, diré que, desafortunadamente, no tienes suerte. Tanto en términos de hacer girar las flechas arriba/abajo programáticamente como en la transparencia de las líneas ajustadas.
No se recomienda necesariamente, pero si desea traer los marcadores al frente, podría considerar volver a dibujarlos con un script de gráficos usando una variación de: https://community.jmp.com/thread/65641
Re: Cambiar el orden de dibujo de los elementos gráficos usando JSLHola, Ian,
Gracias de nuevo, consejos útiles. Aquí, quiero mantener los otros elementos gráficos, en este caso splines ajustados, pero llevar los marcadores al frente de la trama (las líneas del ajuste spline oscurecen los marcadores en áreas donde muchas líneas/marcadores están muy juntos). Puedo hacer esto manualmente usando el método descrito en la publicación original, solo me pregunto si hay alguna forma de hacerlo mediante programación. Es desafortunado que no se incluyera un mensaje de 'orden de marcador' junto con los mensajes de 'Orden de línea de referencia' y 'Orden de línea de cuadrícula' para el cuadro de marco.
Es fácil cambiar la transparencia de los objetos dibujados mediante un script de gráficos. En otra nota, me preguntaba si hay alguna forma de cambiar la transparencia de las líneas ajustadas, por ejemplo, en la plataforma Bi-variante.
Gracias, de nuevo, por toda su ayuda.
Re: Cambiar el orden de dibujo de los elementos gráficos usando JSLPara su información, puede hacer este tipo de cosas (por lo que con la capacidad de cambiar el orden de la cuadrícula y las líneas de referencia, puede obtener lo que desea):
Nombres predeterminados hasta aquí ( 1 ) ;
Abierto ( "$SAMPLE_DATA/Gran Clase.jmp" ) ;
vivac = bivariado ( Y ( : peso ) , X ( : altura ) , FitLine ) ;
rbiv = vivac << informe ;
caja de marcos = rbiv [ caja de marco ( 1 )] ;
Esperar ( 1 ) ;
caja de marcos <<
Agregar secuencia de comandos de gráficos (
1 ,
Descripción ( "Polígono naranja" ) ,
Transparencia ( 0.5 ) ;
Color de relleno ( { 1.0 , 0.5 , 0.0 } ) ;
Polígono ( [ 60 , 72 , 57 ] , [ 75 , 120 , 120 ] ) ;
) ;
Esperar ( 1 ) ;
caja de marcos <<
Agregar secuencia de comandos de gráficos (
2 ,
Descripción ( "Polígono azul" ) ,
Transparencia ( 0.5 ) ;
Color de relleno ( { 0.0 , 0.5 , 1.0 } ) ;
Polígono ( [ 60 , 72 , 57 ] , [ 150 , 120 , 120 ] ) ;
) ;
Esperar ( 1 ) ;
caja de marcos << Eliminar secuencia de comandos de gráficos ( 1 ) ;
// Habiendo eliminado el primer script de gráficos, el segundo ahora está en la posición 1 (aunque originalmente estaba asignado a la posición 2) . . .
Esperar ( 1 ) ;
caja de marcos << Eliminar secuencia de comandos de gráficos ( 1 ) ;
Además, consulte: https://www.jmp.com/support/help/Adding_Scripts_to_Graphs.shtml