Actualización de la instrucción Elemento del generador de gráficosHola, quiero cambiar el estilo del diagrama de caja y bigotes del Graph Builder a un diagrama de puntos dentro de un script JSL. El Generador de gráficos inicialmente incluye una declaración de Elementos que se ve así:
Elements( Box Plot( Y, Legend( 9 ) ) ),
Por lo tanto, quiero modificar esa declaración desde JSL para:
Elements( Points( Y, Legend( 9 ) ) ),
Encontré los comandos << Agregar elemento, << Actualizar elemento y << Eliminar elemento para GraphBuilderBox dentro del Índice de secuencias de comandos, pero no sé cómo aplicarlos para lograr el efecto que deseo. El ejemplo dado en el Índice (agregar una línea de regresión) no se relaciona directamente con mi situación, pero supongo que necesito algo como lo siguiente, donde gb es mi objeto Graph Builder:
report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), Y})
Sin embargo, esto evidentemente no es correcto, así que solo necesito un ejemplo para mostrarme cuál debería ser la sintaxis correcta. ¿Puede alguien ayudarme con esto, por favor?
Muchas gracias.
Re: Actualización de la instrucción Elemento del generador de gráficosPuede que sea poco elegante, pero funciona, ¡y en última instancia eso es todo lo que importa!
Muchas gracias.
Re: Actualización de la instrucción Elemento del generador de gráficosVeo cuál es tu problema ahora. Dado que está utilizando una agrupación X y no una variable X real, la indexación de los elementos no es estándar. Según los documentos:
obj << Get Element(xposition, yposition, i )
Pero, con una agrupación X, en lugar de una X, parece que el primer elemento no es accesible con (1,1,1), (0,1,1), (.,1,1) o cualquier otra cosa que haya probado.Entonces, esto es lo que se me ocurrió: defina temporalmente una variable X para que pueda acceder al elemento y luego elimine la variable X una vez que haya realizado los cambios que necesita. Lo encuentro totalmente poco elegante, pero funciona. Intentaré averiguar si hay una forma adecuada de acceder a los elementos cuando no se define una X para que no necesite esta solución.
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables( Y( :height ), Group X( :sex ) ),
Elements( Box Plot( Y, Legend( 10 ) ) )
);
wait( 1 );
gbb = Report( gb )[Graph Builder Box( 1 )];
//define an X temporarily
gbb << Add Variable( {:age, Role( "X" )} );
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});
//remove the X
gbb << Remove Variable( {:age, Role( "X" )} );
Re: Actualización de la instrucción Elemento del generador de gráficosHola Julián,
Estoy más cerca de entender el problema ahora, pero desafortunadamente todavía no estoy del todo allí.La diferencia entre mi situación y su ejemplo es que estoy usando una variable de agrupación discreta en lugar de una variable X continua: la siguiente variación de su secuencia de comandos ilustra el problema:
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables( Y( :height ), Group X( :sex ) ),
Elements( Box Plot( Y, Legend( 10 ) ) )
);
wait( 1 );
gbb = Report( gb )[Graph Builder Box( 1 )];
// How do I modify the following two lines to replace the Box Plot above by Points?
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});
Si puede mostrarme cómo modificar las dos líneas finales, el problema se resolverá.
Re: Actualización de la instrucción Elemento del generador de gráficosHola @DMR ,
Update Element() cambiará las propiedades de un elemento existente, pero que yo sepa, no le permitirá cambiar el tipo de elemento que es. Intente eliminar el elemento existente y agregar uno nuevo. Ejemplo a continuación.
¡Espero que esto ayude!
@Julian
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Box Plot( X, Y, Legend( 4 ) ) )
);
Wait(1);
gbb = Report( gb )[Graph Builder Box( 1 )];
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});