Hallo JMP-Community,
ich habe ein scheinbar einfaches Problem, das ich nicht lösen konnte.
Im folgenden Skript versuche ich, Textanmerkungen dynamisch mit dem "Add Graphics Script" hinzuzufügen, basierend auf Werten, die aus der Hauptdatentabelle extrahiert wurden (siehe Anhang). Das Problem besteht darin, dass die tatsächlichen dynamischen Werte über die mehreren Frames hinweg alle auf die letzten gültigen Daten gesetzt werden, die aus der Datentabelle extrahiert wurden, anstatt jedem Frame spezifisch zugeordnet zu sein. Ich vermute, dass ich eine Kombination aus "Eval Expr" und "Expr" verwenden muss, um das entsprechende Ergebnis zu erhalten, aber ich konnte nicht die richtige Syntax für diese Operation finden. Alle Vorschläge sind willkommen.
Names Default to Here (1);
dt = data table ("TS_DATA_TABLE_MOCK");
fdr_data = dt:FDR << Get Values ();
show (fdr_data);
gb = dt << Graph Builder(
Size( 832, 835 ),
Fit to Window( "Off" ),
Variables(
X( :"DURATION (Week)"n ),
Y( :LSMEAN ),
Wrap( :M_ID ),
Overlay( :ARM ),
Interval( :STDERR )
),
Elements( Points( X, Y, Legend( 31 ) ), Line( X, Y, Legend( 32 ) ) ),
SendToReport(
Dispatch(
{},
"LSMEAN",
ScaleBox,
{Add Ref Line( 0, "Solid", "Gray", "", 2 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
31,
Base( 0, 0, 0, Item ID( "A", 1 ) ),
Base( 1, 0, 0, Item ID( "B", 1 ) )
)}
)
)
);
gbr = report (gb);
nfr = N items (gbr << Xpath ("//FrameBox"));
For (i = 0, i <= nfr-2, i++,
a_fdr4 = "fdr " || CHAR(Format(fdr_data [ (i*6) + 4], "PValue"));
a_fdr14 = "fdr " || CHAR(Format(fdr_data [ (i*6) + 6], "PValue"));
b_fdr4 = "fdr " || CHAR(Format(fdr_data [ (i*6) + 3], "PValue"));
b_fdr14 = "fdr " || CHAR(Format(fdr_data [ (i*6) + 5], "PValue"));
locfr = gbr [FrameBox (i+1)];
locfr << add graphics script (
Text size (8);
Text color (blue);
Text (Center Justified, {4, -0.15}, a_fdr4);
Text (Center Justified, {14, -0.15}, a_fdr14);
Text color (green);
Text (Center Justified, {4, -0.2}, b_fdr4);
Text (Center Justified, {14, -0.2}, b_fdr14);
);
);
Beachten Sie, dass dies ein Teil eines größeren Skripts ist, das bestimmte Zeilen zum Plotten in diesem Format auswählt.
Am besten,
TS
Wenn es sich um Eval(EvalExpr()) handelt, versuchen Sie Folgendes:
Eval(EvalExpr(locfr << add graphics script(
Text Size(8);
Text Color(blue);
Text(Center Justified, {4, -0.15}, Expr(a_fdr4));
Text(Center Justified, {14, -0.15}, Expr(a_fdr14));
Text Color(green);
Text(Center Justified, {4, -0.2}, Expr(b_fdr4));
Text(Center Justified, {14, -0.2}, Expr(b_fdr14));
)));Zumindest scheinen die Werte im benutzerdefinierten Diagramm aktualisiert zu werden und die Werte sind nicht in jeder der Gruppen gleich:

Hallo jti,
Genial, wie immer. Ich kämpfe immer noch mit dem Konstrukt mit Eval / Eval Expr / Expr.
Am besten,
TS