嗨 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 / Eval Expr / Expr 的构造而苦苦挣扎。
最好的,
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));
)));至少自定义图中的值似乎得到了更新,并且每个组中的值都不相同:
