為每個用戶選擇的參數為圖形構建器添加唯一的 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 );
);
回复:為每個用戶選擇的參數為圖形構建器添加唯一的 SPEC 限制謝謝。在職的!
你能解釋一下為什麼使用
Try( Report( gb )[AxisBox( 2 )] << add Ref Line
進而
Report( gb )[AxisBox( 2 )] << Add Ref Line( UC, "Solid", "Red", "UCL", 1 );
對於UCL,CLINE,LCL?
托默