Comandos JSL de Graph Builder en ElementsHola,
No puedo encontrar la sintaxis para editar (agregar elemento/eliminar elemento/agregar etiquetas al elemento) elementos del generador de gráficos después el gráfico está listo.
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 2 ) ) )
);
//gb[Elementos(2)] << Etiqueta( "Etiqueta por valor" );// ?? // ¿Cuál es la sintaxis de esto?
//gb << Agregar elemento (Posición (1, 3), Línea (X, Y, Leyenda (3)));// ?? //Tiene que ser peso
Gracias
La personalización en masaRe: Comandos JSL de Graph Builder en ElementsDesde Jmp17 
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y(1), Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y(2), Legend( 2 ) ) )
);
gb << Update Element(1,2,1, {Label("Label by Value")});
gb << Add Variable({:weight, Role("Y"), Method("insert")}); //creates a bar chart
gb << Add Element( 1, 3 , {Type("Line"), X, Y}, Legend( 3 ) );
gb << Remove Element( 1, 3 , 1 ); //remove bar chartRe: Comandos JSL de Graph Builder en ElementsMuchas gracias a los dos.
"GraphBuilderBox" es la palabra clave...
Re: Comandos JSL de Graph Builder en Elements@tom_abramov ,
Fui yo, un error de sintaxis del usuario.Ella te vas.
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y(1), Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y(2), Legend( 2 ) ) )
);
gbb = report(gb)[GraphBuilderBox(1)];
gbb<< Update Element(1,2,1, {Label("Label by Value")});
report(gb)[GraphBuilderBox(1)] << Add Variable({:weight, Role("Y"), Method("insert")}); //creates a bar chart
gbb = report(gb)[GraphBuilderBox(1)];
gbb << Add Element( 1, 3 , {Type("Line"), X, Y}, Legend( 3 ) );
gbb << Remove Element( 1, 3 , 1 ); //remove bar chart
Re: Comandos JSL de Graph Builder en Elements@tom_abramov ,
Tomé un camino largo y diferente, como Jim, @txnelson .Entonces me reí, porque JMP tiene una solución sencilla con el mensaje
Actualizar elemento() enviado a GraphBuilderBox()
Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y(1), Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y(2), Legend( 2 ) ) )
);
gbb = report(gb)[GraphBuilderBox(1)];
gbb<< Update Element(1,2,1, {Label("Label by Value")});
/* //hard way not recommended
//must be done while No Labels is specified
gb<< show Control Panel(1);
so_bar = report(gb)[OutlineBox("Bar[weight]")];
cb_label = so_bar << xpath("//ComboBox/ComboBoxItem[text()='No Labels']/..");
cb_label << set(2);
gb << show Control panel(0);
*/
Sin embargo, tengo un problema al agregar la variable: peso, lo cual es fácil de hacer, pero de forma predeterminada, GraphBuilder crea otro elemento de gráfico de barras.y me meto en algunos problemas complicados, varias excepciones de JMP.
Agregaré un elemento de la lista de deseos en el que JMP permite un mensaje Cambiar a () para elementos, no solo Agregar elemento y Eliminar elemento.
Lo agregaré a la publicación cuando lo descubra.
Re: Comandos JSL de Graph Builder en Elements@tom_abramov
Se me ocurrió una idea y hay una forma de evitarlo... Esta es una solución que he usado muchas veces por diferentes razones.Lo que le sugiero que haga es escribir su código, de modo que lo que haga sea cuando necesite agregar los elementos a los que hace referencia, simplemente elimine el gráfico completo y vuelva a crearlo en su lugar.Por la forma en que JMP maneja la actualización, probablemente no mostrará el cambio cuando se elimine el gráfico.Probablemente simplemente verá que el gráfico ha cambiado.
El siguiente código ilustra mi idea.
names default to here(1);
Open( "$SAMPLE_DATA/Big Class.jmp" );
new window("Test", vlb=vlistbox());
vlb<< append(gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 2 ) ) )
));
wait(5);
gb << delete;
vlb << append(gb = Graph Builder(
Size( 465, 278 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements(
Position( 1, 2 ),
Bar( X, Y, Legend( 2 ), Label( "Label by Value" ) )
)
));Re: Comandos JSL de Graph Builder en ElementsMalo para mi...
Gracias Jim.
Re: Comandos JSL de Graph Builder en ElementsNo creo que se pueda hacer.Lo que tendría que poder hacer es pasar al FrameBox() en la salida, un segmento, como un Bar Seg o un Line Seg.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Graph Builder( Variables( X( :age ), Y( :weight ) ), Elements( Bar( X, Y ) ) );
frame = Report( obj )[FrameBox( 1 )];
seg = (frame << Find Seg( "Bar Seg" ));
seg << Get Width Proportion();
seg << Set Fill Color( "Green" );
Puede cambiar los segmentos de forma interactiva, en la selección Personalizar cuando hace clic derecho en el gráfico y no hay ningún segmento de etiqueta.
