为每个用户选择的参数为图形构建器添加唯一的 SPEC 限制你好
我编写了一个脚本来查看带有图形构建器的交互式图表,用户可以选择两个参数(MODULE_MONITOR 和 CHART_TYPE)。
每个参数有两个选择选项。
每个四图表显示选项具有一组独特的 SPEC 限制(在列中):CENTERLINE、UCL、LCL。
我希望每个图表都能绘制相关的 SPEC 限制。
谢谢!
JSL 脚本:
Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :PROCESS_DATE ), Y( :VALUE ), Overlay( :group ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Add Filter(
columns( :MODULE_MONITOR, :CHART_TYPE ),
Where( :MODULE_MONITOR == "PLPN" ),
Where( :CHART_TYPE == "SIGMA" )
)
),
SendToReport(
Dispatch(
{},
"VALUE",
ScaleBox,
{Add Ref Line( :UCL, "Solid", "Red", "UCL", 1 ),
Add Ref Line( :LCL, "Solid", "Red", "LCL", 1 ),
Add Ref Line( :CENTERLINE, "Solid", "Black", "CENTERLINE", 1 )
}
)
)
)
分析数据表脚本编写回复:为每个用户选择的参数为图形构建器添加唯一的 SPEC 限制这是处理您的问题的一种方法的示例
Names Default To Here( 1 );
// Open Data Table: big class.jmp
// → Data Table( "big class" )
dt = Open( "$SAMPLE_DATA/big class.jmp" );
gb = dt << Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) )
);
ldf = gb << Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "F" ) ) );
Report( gb )[FrameBox( 1 )] << add graphics script(
wc = ldf << get where clause;
Eval( Parse( "dt << " || wc ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( UC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( LC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( cLINE, "Solid", "Blue", "", 0 ) );
cline = Try( dt:centerline[(dt << get selected rows)[1]], . );
uc = Try( dt:ucl[(dt << get selected rows)[1]], . );
lc = Try( dt:lcl[(dt << get selected rows)[1]], . );
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( LC, "Solid", "Red", "LCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( cLINE, "Solid", "Black", "CENTERLINE", 1 );
);
附加的数据表包含一个示例数据表,我认为它与您的表相似
回复:为每个用户选择的参数为图形构建器添加唯一的 SPEC 限制你好
感谢回复
我试图将我的脚本与您的帮助相匹配,但它不起作用。
附在此处的脚本和表格
希望你能帮忙
托默
Names default to here (1);
dt = Current Data Table(); // Assuming the data table is open
gb = Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :PROCESS_DATE ), Y( :VALUE ), Overlay( :group ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Add Filter(
columns( :MODULE_MONITOR, :CHART_TYPE ),
Where( :MODULE_MONITOR == "PLPN" ),
Where( :CHART_TYPE == "SIGMA" )
)
),
);
ldf = gb << Local Data Filter( Add Filter( columns( :MODULE_MONITOR, :CHART_TYPE ), Where( :MODULE_MONITOR == "PLPN" ),Where( :CHART_TYPE == "SIGMA" ) ) );
Report( gb )[FrameBox( 1 )] << add graphics script(
wc = ldf << get where clause;
Eval( Parse( "dt << " || wc ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( UCl, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( LCl, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( CENTERLINE, "Solid", "Blue", "", 0 ) );
cline = Try( dt:CENTERLINE[(dt << get selected rows)[1]], . );
uc = Try( dt:UCL[(dt << get selected rows)[1]], . );
lc = Try( dt:LCL[(dt << get selected rows)[1]], . );
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( LC, "Solid", "Red", "LCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( cLINE, "Solid", "Black", "CENTERLINE", 1 );
);
回复:为每个用户选择的参数为图形构建器添加唯一的 SPEC 限制代码中有几个问题。
- 您已留在图形生成器主体中的本地数据过滤器代码中。我发送的修改删除了该代码并使用
ldf = gb << Local Data Filter(..........
包含两个过滤器引用迫使第二个不能正常工作。
- 我留下了两个错误的参考文献
Try( Report( gb )[AxisBox( 2 )] << remove Ref Line( LC, "Solid", "Blue", "", 0 ) );
Remove Ref Line 中有一个错误。所以与其删除线,不如将线设置为线宽为0,所以线需要读取
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( LC, "Solid", "Blue", "", 0 ) );
在这些更改之后,脚本对我来说可以很好地处理您的数据。
Names default to here (1);
dt = Current Data Table(); // Assuming the data table is open
gb = Graph Builder(
Size( 866, 897 ),
Show Control Panel( 0 ),
Variables( X( :PROCESS_DATE ), Y( :VALUE ), Overlay( :group ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) )/*,
Local Data Filter(
Add Filter(
columns( :MODULE_MONITOR, :CHART_TYPE ),
Where( :MODULE_MONITOR == "PLPN" ),
Where( :CHART_TYPE == "SIGMA" )
)
),*/
);
ldf = gb << Local Data Filter( Add Filter( columns( :MODULE_MONITOR, :CHART_TYPE ), Where( :MODULE_MONITOR == "PLPN" ),Where( :CHART_TYPE == "SIGMA" ) ) );
Report( gb )[FrameBox( 1 )] << add graphics script(
wc = ldf << get where clause;
Eval( Parse( "dt << " || wc ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( UC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( LC, "Solid", "Blue", "", 0 ) );
Try( Report( gb )[AxisBox( 2 )] << add Ref Line( cLine, "Solid", "Blue", "", 0 ) );
cline = Try( dt:CENTERLINE[(dt << get selected rows)[1]], . );
uc = Try( dt:UCL[(dt << get selected rows)[1]], . );
lc = Try( dt:LCL[(dt << get selected rows)[1]], . );
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( LC, "Solid", "Red", "LCL", 1 );
Report( gb )[AxisBox( 2 )] << Add Ref Line( cLINE, "Solid", "Black", "CENTERLINE", 1 );
);