Anotación personalizada basada en el contenido de FrameboxMe gustaría agregar una anotación a cada cuadro individual de un informe del generador de gráficos.Aquí hay un ejemplo (trivial) ...
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder( Variables( X( :height ), Y( :weight ), Group X( :sex ), Group Y( :age ) ) );
gb << SendToReport( Dispatch( {}, "Graph Builder", FrameBox, Add Text Annotation( Text( "Female-12" ), Filled( 0 ) ) ) );

En este ejemplo anterior, el cuadro de marco superior izquierdo tiene una anotación "Mujer-12".Esto se hizo de una manera codificada.Me gustaría agregar una anotación a cada marco en función de la agrupación de datos en ese marco.
Idealmente, me gustaría saber cuál es el grupo X y el grupo Y para cada cuadro de cuadro y componer una anotación basada en eso y agregarla a cada Cuadro de cuadro.
Idealmente, también me gustaría rehacer estas anotaciones después de que se haya realizado un cambio en el filtro de datos local en caso de que la asignación de Framebox # a la agrupación cambie cuando alguien haga clic en el filtro de datos local.
Entonces, ¿cómo averiguo qué datos hay en cada framebox?
secuencias de comandosRe: Anotación personalizada basada en el contenido de FrameboxLas agrupaciones en el generador de gráficos son un poco molestas para trabajar, pero ... debe conocer el orden según la tabla de datos y también conocer las columnas de agrupación que tiene. Con esa información, es posible que pueda crear las anotaciones.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(Variables(X(:height), Y(:weight), Group X(:sex), Group Y(:age)));
Summarize(dt, uniq = By(:sex, :age));
For Each({{a, b}, idx}, Across(uniq[1], uniq[2]),
frame = (gb << report)[FrameBox(idx)];
frame << Add Text Annotation(Text(Eval Insert("^a^ - ^b^")));
);

Con el filtro de datos local, es posible que deba analizar la instrucción Where y usar esa información para obtener los grupos correctos.
Este tema puede tener algunas ideas adicionales Identificación de títulos de títulos de página de Graph Builder
Re: Anotación personalizada basada en el contenido de FrameboxAsí es como lo manejaría
Names Default To Here( 1 );
//This message applies to all display box objects
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = Graph Builder(
Size( 567, 496 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Group X( :sex ), Group Y( :age ) ),
Elements( Points( X, Y, Legend( 11 ) ), Smoother( X, Y, Legend( 12 ) ) )
);
rgb = Report( gb );
rgb[FrameBox( 1 )] << Add Text Annotation(
Text( "Text for FrameBox(1)" ),
Fixed Size( 0 ),
Text Box( {-1, 5, 138, 32} ),
Filled( 0 )
);
rgb[FrameBox( 7 )] << Add Text Annotation(
Text( "Text for FrameBox(7)" ),
Fixed Size( 0 ),
Text Box( {-1, 0, 138, 27} ),
Filled( 0 )
);

Re: Anotación personalizada basada en el contenido de FrameboxSi bien su ejemplo muestra cómo agregar una anotación a cada cuadro de marco, la pregunta que hago es cómo averiguar la agrupación Y y la agrupación X en ese cuadro de marco.
Re: Anotación personalizada basada en el contenido de FrameboxNo sé la respuesta a eso.Siempre lo he trabajado sabiendo cuáles son las agrupaciones X e Y y luego partiendo de allí.Sospecho que podría recuperar la secuencia de comandos del objeto, y luego eliminar las columnas del Grupo X y el Grupo Y, y continuar desde allí.