改进控制图可视化的技巧你好,
我从 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 脚本世界中有一个最好的开端,我强烈建议您阅读脚本指南。
帮助==>书籍==>脚本指南
如果您一般不精通计算机编程,我建议您在网上找到 o 并搜索“免费在线编程介绍”。
回复:改进控制图可视化的技巧你好,
所以我试着按照你的提示,在我从数据表创建一个单独的控制图后得到的脚本下面:
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 将使用首选项中的图表大小默认值。我的建议是您以交互方式运行图表。然后手动将图表大小更改为您想要的大小,然后转到红色小三角并选择“保存脚本”。它将脚本代码嵌入到它生成的脚本中,以便在您运行它时更改图表大小。