改善控製圖可視化的技巧你好,
我從 JMP 數據表創建了幾個控製圖並將所有內容保存為報告,我想執行以下操作:
- 如何修改腳本以便僅繪製數據表中的最後 30 個數據點?
- 如何修改腳本以設置圖表的正確大小? 現在每次我打開它時,圖表都會被壓縮在左側
感謝您的支持!
回复:改進控製圖可視化的技巧您將需要添加代碼來隱藏和排除圖表上的第一個數據點...如果您重新運行執行隱藏和排除的腳本,它將根據增加的值使用新的 dt << N Rows() 計算行數。回复:改進控製圖可視化的技巧非常感謝,現在腳本在軸設置方面可以按預期工作。
我認為我需要的最後一步如下:
通常我們將數據表嵌入到 JMP 報告中,因此在數據上添加新的數據行,圖表會自動更新為新值,我注意到“最後 30 個數據點”並未以 1 新值、1 的方式滾動舊值較小,但標繪點的數量每天都在增加1。
有什麼我可以做的嗎?
回复:改進控製圖可視化的技巧哎呀......有幾個錯誤。
需要有一個“;”在 dt << 之後選擇清除;
您使用的圖表需要引用 AxisBox(2),而不是 AxisBox(1);
dt = current data table();
// Hide and Exclude all rows except the last 30
dt << select where(Row() < N Rows( dt ) - 29 );
dt << Hide and Exclude;
// Unselect the rows
dt << clear select;
cc = Control Chart(
Sample Label( :Data ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Si STD 3 ppb, Individual Measurement( Avg( 3 ), LCL( 2.25 ), UCL( 3.75 ) ) ),
SendToReport(
Dispatch(
{"Individual Measurement of Si STD 3 ppb"},
"IR Chart of IM",
FrameBox,
{Frame Size( 1301, 208 )}
)
)
);
// Set the axis parameters
report(cc)[AxisBox(2)]<<MIN></MIN>回复:改進控製圖可視化的技巧所以我使用的腳本如下:
dt = current data table();
// Hide and Exclude all rows except the last 30
dt << select where(Row() < N Rows( dt ) - 29 );
dt << Hide and Exclude;
// Unselect the rows
dt << clear select
cc = Control Chart(
Sample Label( :Data ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Si STD 3 ppb, Individual Measurement( Avg( 3 ), LCL( 2.25 ), UCL( 3.75 ) ) ),
SendToReport(
Dispatch(
{"Individual Measurement of Si STD 3 ppb"},
"IR Chart of IM",
FrameBox,
{Frame Size( 1301, 208 )}
)
)
);
// Set the axis parameters
report(cc)[AxisBox(1)]<<MIN></MIN>關於第一個要點,我們對代碼大喊大叫,我得到了這個

對於第2點和第3點,我該如何檢查?
回复:改進控製圖可視化的技巧線路
report(cc)[AxisBox(1)]<<MIN></MIN>
顯然沒有找到它需要更改的 AxisBox() 。
- 我在 12 月 13 日 3:23(我的時間)中包含的示例工作正常嗎?
- 變量“dt”是否被分配為指向目標數據表?
- “cc”是否指向控製圖平台
cc = Control Chart(
能夠查看您正在使用的實際代碼將會有所幫助。您能提供該代碼嗎?
回复:改進控製圖可視化的技巧你好,
該腳本工作正常,可以選擇最後 30 個數據點,但我認為在設置 X 軸上的最小值和最大值時遇到問題,如下圖所示:

回复:改進控製圖可視化的技巧嘗試這個
dt = current data table();
// Hide and Exclude all rows except the last 30
dt << select where(Row() < N Rows( dt ) - 29 );
dt << Hide and Exclude;
// Unselect the rows
dt << clear select
cc = Control Chart(
Sample Label( :Data ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Si STD 3 ppb, Individual Measurement( Avg( 3 ), LCL( 2.25 ), UCL( 3.75 ) ) ),
SendToReport(
Dispatch(
{"Individual Measurement of Si STD 3 ppb"},
"IR Chart of IM",
FrameBox,
{Frame Size( 1301, 208 )}
)
)
);
// Set the axis parameters
report(cc)[AxisBox(1)]<<MIN></MIN>
為了讓您更好地了解 JMP 腳本編寫世界,我強烈建議您閱讀腳本指南。
幫助==>書籍==>腳本指南
如果您一般不熟悉計算機編程,我建議您在網上查找“免費在線編程簡介”。
回复:改進控製圖可視化的技巧你好,
所以我嘗試遵循您的提示,下面是我從數據表創建單獨控製圖後得到的腳本:
Control Chart(
Sample Label( :Data ),
Group Size( 1 ),
KSigma( 3 ),
Chart Col( :Si STD 3 ppb, Individual Measurement( Avg( 3 ), LCL( 2.25 ), UCL( 3.75 ) ) ),
SendToReport( Dispatch( {"Individual Measurement of Si STD 3 ppb"}, "IR Chart of IM", FrameBox, {Frame Size( 1301, 208 )} ) )
);
我應該將代碼粘貼到哪裡?
抱歉,我確實是腳本編寫的初學者。
謝謝。
回复:改進控製圖可視化的技巧我建議的第一個選項不需要子集化!請參閱下面的腳本
names default to here(1);
dt=open("$SAMPLE_DATA/semiconductor capability.jmp");
// Hide and Exclude all rows except the last 30
dt << select where(Row() < N Rows( dt ) - 29 );
dt << Hide and Exclude;
// Unselect the rows
dt << clear select
// Run the control chart
cc = Control Chart Builder(
Variables( Y( :NPN1 ) ),
Chart( Position( 1 ), Limits( Sigma( "Moving Range" ) ) ),
Chart( Position( 2 ), Limits( Sigma( "Moving Range" ) ) )
);
// Set the axis parameters
report(cc)[AxisBox(1)]<<MIN></MIN>回复:改進控製圖可視化的技巧你好,特克斯尼爾森,
感謝您的建議,不幸的是,我想做的是在腳本中編寫一些代碼,自動從數據表中僅獲取最後 30 個數據點,而不創建當前數據表的子集。
謝謝。
回复:改進控製圖可視化的技巧有幾種方法可以做到這一點。
- 選擇 Row() < N Rows(dt)-30 的所有行,然後隱藏並排除它們
- 通過選擇 Row() >= N Rows(dt)-30 的所有行來創建最後一個的子集,然後使用 Tables==>Subset 創建新數據表,並針對新數據表運行圖表生成器
除非您在腳本中手動更改了圖表大小,否則 JMP 將使用首選項中的默認圖表大小。我的建議是您以交互方式運行圖表。然後手動將圖表大小更改為您想要的大小,然後轉到紅色小三角並選擇“保存腳本”。它將在其生成的腳本中嵌入腳本代碼,以便在運行時更改圖表大小。