如何切換 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))));
)
);