您好 JMP 社區,
我有一個顯然很簡單的問題,但我無法解決。
在下面的腳本中,我試圖根據從主數據表中提取的值(見附件)使用“添加圖形腳本”動態添加文本註釋。 問題是跨多個幀的實際動態值都設置為從數據表中提取的最後一個有效數據,而不是與每個幀具體關聯。 我懷疑我需要使用“Eval Expr”和“Expr”的組合來獲得適當的結果,但我無法找到此操作的正確語法。 歡迎所有建議。
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);
);
);
值得注意的是,這是一個較大腳本的一部分,用於選擇特定行以這種格式進行繪圖。
最好的事物,
TS
如果它是 Eval(EvalExpr()) 事情試試這個:
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));
)));至少自定義圖中的值似乎得到了更新,並且每個組中的值都不相同:

嗨,
輝煌,一如既往。 我仍在為 Eval / Eval Expr / Expr 的構造而苦苦掙扎。
最好的,
TS