如何切换 X 组以显示所有项目或仅显示某些项目?如何切换 X 组以显示所有项目或仅显示某些项目?
如下面的 JSL 代码所示,使用 Where 可以让 Group X 仅显示特定项目。但是,无法在显示全部项目和显示部分项目之间切换。该如何修改?或许需要使用 addvariable() ,但我找不到如何使用 addwhere 。
Names Default To Here( 1 );
selection = 1;
New Window( "Example",
cb = Combo Box( {"Only age 13 and 16", "All age"}, selection = (cb << Get()) ),
Button Box( "Plot",
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 528, 500 ),
Show Control Panel( 0 ),
Variables( X( :sex ), X( :age, Position( 1 ) ), Y( :height ), Group X( :age ) ),
Elements( Points( X( 1 ), X( 2 ), Y, Legend( 10 ) ) ),
If( selection == 1,
Where( Contains( {13, 16}, :age ) ),
),
);
)
);
自动化和脚本回复:如何切换 X 组以显示所有项目或仅显示某些项目?您有多种不同的选择:
- 有两个单独的图形构建器表达式
- 使用(隐藏)本地数据过滤器
- 使用 Where 构建图形生成器表达式
- 使用链接子集(使用您的条件进行过滤)作为图形生成器
这是使用 Where 的一种方法
Names Default To Here(1);
selection = 1;
New Window("Example",
cb = Combo Box({"Only age 13 and 16", "All age"}, selection = (cb << Get())),
Button Box("Plot",
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb_expr = Expr(Graph Builder(
Size(528, 500),
Show Control Panel(0),
Variables(X(:sex), X(:age, Position(1)), Y(:height), Group X(:age)),
Elements(Points(X(1), X(2), Y, Legend(10)))
));
If(selection == 1,
Insert Into(gb_expr, NameExpr(Where(Contains({13, 16}, :age))));
);
gb = Eval(EvalExpr(Send(dt, Expr(gb_expr))));
)
);