Annotation personnalisée basée sur le contenu FrameboxJe voudrais ajouter une annotation à chaque cadre individuel d'un rapport de générateur de graphique.Voici un exemple (banal)...
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 ) ) ) );

Dans cet exemple ci-dessus, la Framebox en haut à gauche contient une annotation "Female-12".Cela a été fait de manière codée en dur.Je voudrais ajouter une annotation à chaque cadre en fonction du regroupement des données dans ce cadre.
Idéalement, j'aimerais savoir ce qu'est le groupe X et le groupe Y pour chaque framebox et composer une annotation basée sur cela et l'ajouter à chaque Framebox.
Idéalement, j'aimerais également refaire ces annotations après qu'une modification a été apportée au filtre de données local au cas où l'affectation de Framebox # au groupement change lorsque quelqu'un clique sur le filtre de données local.
Alors - comment puis-je déterminer quelles données se trouvent dans chaque framebox ?
Organisation du contenuFusion et nettoyage des donnéesPersonnalisation de masseRe : Annotation personnalisée basée sur le contenu de FrameboxJe ne connais pas la réponse à cela.Je l'ai toujours travaillé en sachant quels sont les groupements X et Y, puis en partant de là.Je soupçonne que vous pourriez récupérer le script de l'objet, puis supprimer les colonnes Groupe X et Groupe Y, et partir de là.
Re : Annotation personnalisée basée sur le contenu de FrameboxAlors que votre exemple montre comment ajouter une annotation à chaque framebox, la question que je pose est de savoir comment trouver le groupement Y et le groupement X dans cette framebox.
Re : Annotation personnalisée basée sur le contenu de FrameboxVoici comment je m'y prendrais
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 : Annotation personnalisée basée sur le contenu de FrameboxLes regroupements dans le générateur de graphiques sont un peu ennuyeux à travailler, mais ... vous devez connaître l'ordre basé sur la table de données et vous connaissez également les colonnes de regroupement que vous avez. Avec ces informations, vous pourrez peut-être créer les annotations
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^")));
);

Avec le filtre de données local, vous devrez peut-être analyser l'instruction Where et utiliser ces informations pour obtenir les groupes corrects.
Ce sujet pourrait avoir quelques idées supplémentaires Identification des titres des titres de page du générateur de graphiques