Benutzerdefinierte Anmerkung basierend auf Framebox-InhaltenIch möchte jedem einzelnen Frame eines Graph Builder-Berichts eine Anmerkung hinzufügen.Hier ist ein (triviales) Beispiel...
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 ) ) ) );

In diesem Beispiel oben enthält die Framebox oben links die Anmerkung „Female-12“.Dies geschah auf fest codierte Weise.Ich möchte jedem Frame eine Anmerkung hinzufügen, die auf der Gruppierung der Daten in diesem Frame basiert.
Im Idealfall möchte ich wissen, was die X-Gruppe und die Y-Gruppe für jede Framebox sind, und darauf basierend eine Anmerkung verfassen und diese zu jeder Framebox hinzufügen.
Idealerweise möchte ich diese Anmerkungen auch wiederholen, nachdem eine Änderung am lokalen Datenfilter vorgenommen wurde, falls sich die Zuweisung von Framebox # zur Gruppierung ändert, wenn jemand durch den lokalen Datenfilter klickt.
Wie finde ich also heraus, welche Daten sich in den einzelnen Frameboxen befinden?
InhaltsorganisationDatenmischung und -bereinigungMassenanpassungBetreff: Benutzerdefinierte Anmerkung basierend auf Framebox-InhaltenIch weiß die Antwort darauf nicht.Ich habe es immer so gemacht, dass ich die X- und Y-Gruppierungen kannte und dann von dort aus vorging.Ich vermute, Sie könnten das Skript aus dem Objekt abrufen, dann die Spalten „Gruppe X“ und „Gruppe Y“ entfernen und von dort aus fortfahren.
Betreff: Benutzerdefinierte Anmerkung basierend auf Framebox-InhaltenWährend Ihr Beispiel zeigt, wie man jeder Framebox eine Anmerkung hinzufügt, stelle ich mir die Frage, wie man herausfindet, dass sich die Y- und X-Gruppierung in dieser Framebox befindet.
Betreff: Benutzerdefinierte Anmerkung basierend auf Framebox-InhaltenSo würde ich damit umgehen
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 )
);

Betreff: Benutzerdefinierte Anmerkung basierend auf Framebox-InhaltenDie Arbeit mit Gruppierungen im Graph Builder ist etwas nervig, aber... Sie sollten die Reihenfolge basierend auf der Datentabelle kennen und auch die Gruppierungsspalten kennen, die Sie haben. Mit diesen Informationen können Sie möglicherweise die Anmerkungen erstellen
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^")));
);

Beim lokalen Datenfilter müssen Sie möglicherweise die Where-Anweisung analysieren und diese Informationen verwenden, um die richtigen Gruppen zu erhalten.
Dieses Thema könnte einige zusätzliche Ideen enthalten Identifizieren von Titeln von Graph Builder-Seitentiteln