添加带有变量的图形脚本 H 行大家好,
我正在尝试使用变量向图形生成器对象添加一条水平线,这样它就可以工作
x = 139.4;
Show( x ); //x = 139.4;
gbReport[Framebox( 1 )] << addGraphicsScript(
H Line( x )
);
但如果我做那样的事情
TR1_row = dt_lims << get selected rows;
TR1 = Column( dt_lims, "CL" )[TR1_row] ;
gbReport[Framebox( 1 )] << addGraphicsScript(
H Line(TR1 )
);
这不起作用,有什么想法吗?
回复:添加带有变量的图形脚本 H 行@avner8943 ,
附件是一个使用 RowState 处理程序来更改限制的脚本。
Names Default to Here(1);
dt = Open("$Sample_Data/Big Class.jmp");
dt << sort(By(:sex, :age), Replace Table(1));
dt << New Column( "Order", Numeric);
dt:Order << Set Each Value( If( row()==1 | :sex != lag(:sex,1), 1, lag(:Order,1) +1)) ;
dtsum = dt << Summary( Group(:sex), Min(:height), mean(:height), Max(:height));
dtlims = dtsum << Stack(
columns(
:Name( "Min(height)" ),
:Name( "Mean(height)" ),
:Name( "Max(height)" )
),
Source Label Column( "Label" ),
Stacked Data Column( "Limits" )
);
Close(NoSave, dtsum);
f= Function({a}, {TR1, i},
print(a, fb);
// show(a, fb);
for(i=1, i<=nitems(fb), i++,
Try( fb[i] << Remove Graphics Script (1) )
);
TR1 = :Limits[dtlims << get selected rows];
Eval (EvalExpr( fb << Add Graphics Script( H Line( Expr( TR1) ) ) ) );
);
gb = dt << Graph Builder(
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :Order ), Y( :height ), Group X(:sex) ),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 5 ) ) )
);
fb = gb << Xpath("//FrameBox");
rs = dtlims << Make RowState Handler(f );
选择一行或多行或清除所有行选择并查看所有框架框上的更改。

该脚本已在 JMP 14 和 15 上进行了测试。 附件是对第 26 行脚本的轻微修改,以便该脚本可以在 JMP 13 上运行。
所以您的脚本肯定还有其他问题,因为这适用于 RowState Handler 脚本。
回复:添加带有变量的图形脚本 H 行也许是因为我在函数内部执行此操作并从 MakeRowStateHandler 调用此函数,当我在函数外部尝试它时,它正在工作。
回复:添加带有变量的图形脚本 H 行@avner8943 ,
以下脚本使用 JMP 示例数据表 Big Class,并有选择地仅使用 Males 并一次添加 3 个限制。
Names Default to Here(1);
dt = Open("$Sample_Data/Big Class.jmp");
dt << sort(By(:sex, :age), Replace Table(1));
dt << New Column( "Order", Numeric);
dt:Order << Set Each Value( If( row()==1 | :sex != lag(:sex,1), 1, lag(:Order,1) +1)) ;
dtsum = dt << Summary( Group(:sex), Min(:height), mean(:height), Max(:height));
dtlims = dtsum << Stack(
columns(
:Name( "Min(height)" ),
:Name( "Mean(height)" ),
:Name( "Max(height)" )
),
Source Label Column( "Label" ),
Stacked Data Column( "Limits" )
);
Close(NoSave, dtsum);
TR1_row = dtlims << get rows where( :sex =="M");
TR1 = column(dtlims, "Limits")[TR1_row];
gb = dt << Graph Builder( where (:sex=="M"),
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :Order ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Line( X, Y, Legend( 5 ) ) )
);
gbreport = report(gb);
gbreport[FrameBox(1)] << Add Graphics Script( HLine( TR1 ) );
它产生了这个情节。

不确定问题是什么,除非没有选定的行。
祝你好运!
回复:添加带有变量的图形脚本 H 行这是可行的,但我如何将其调整为从 JMP 表中的特定单元格获取值的脚本。回复:添加带有变量的图形脚本 H 行@avner8943 ,
H Line() 的语法为 H Line(y), H Line(x1, x2, y)。 另外,如果您有值向量,请尝试此脚本。
Names Default To Here( 1 );
v = [10, 50, 20];
New Window( "Example",
Graph Box(
Pen Size( 2 );
H Line( v );
)
);
产生这个情节:

检查此脚本是否适合您。如果没有,请指定您正在使用的 JMP 和操作系统版本。