绘制行中列中定义的 UCL/LCL你好,
当这些限制在该特定行的列中定义时,有人可以分享如何编写脚本将 LCL/UCL 添加到任何类型的绘图中。 该表有几个正在绘制的参数(由标签列标识),因此每个图表都为该行中的每种图表类型定义了一组不同的限制。
例如(附后),如果我们在大类示例中有两列 UCL/LCL 与堆叠数据表。
有人可以编写一个简短的脚本来生成高度的叠加图,其中 LCL 和 UCL 在相应列中为高度定义。
希望这个问题是有道理的。
谢谢!!
回复:绘制行中列中定义的 UCL/LCL当 UCL/LCL 随时间变化时,任何人都有理想的绘制方法吗?
JIM提出的方法@txnelson适用于静态 UCL/LCL 限制。但随着限制的变化不确定该怎么做?
回复:绘制行中列中定义的 UCL/LCL我不确定您到底想让 Overlay Plot 做什么。我建议您以交互方式运行绘图以使其成为您想要的形式,然后只需转到红色三角形并选择让 JMP 保存脚本。但是对于你所展示的 JSL:
您的 Overlay 规范中缺少 X() 元素。您表示您更改的样本
op = Overlay Plot( Y( :data ), by( :label ) );
不是正确的形式。正确的例子是
op = Overlay Plot( X( :name ), Y( :Data ), by( :label ) );
因此,您需要使用的规范是:
op = Overlay Plot( Y( :data1, :data2), X(:data3 ), by( :label ) , needle (1) );
回复:绘制行中列中定义的 UCL/LCL你好,
作为 JSL 新手,我复制了您的方法,并且非常适合单列绘制数据(谢谢!)。 但是,我想在图中再包含 2 列(以及它们之间的一根针)。 目前,这会生成一个包含 3 列的图,但没有 UCL/LCL。
我更改了“op = Overlay Plot( Y( :data ), by( :label ) );”
到
“op = Overlay Plot( Y( :data1, :data2, :data3 ), by( :label ), needle (1) );”
你知道这是为什么以及如何解决它吗? 谢谢!
回复:绘制行中列中定义的 UCL/LCL了解可用图表的最佳方法是查看文档 Essential Graphing
帮助==>基本绘图
然后,在运行图形后,您可以从图形输出中的红色三角形中进行选择,以保存脚本。从那里您将获得生成图表所需的代码。
下面是对先前提供的脚本的修改。我修改了它以检查以确保显示参考线。
Names Default To Here( 1 );
dt = Current Data Table();
// Get all of the by values, since separate code will have to be added for each
Summarize( dt, byVals = by( :Label ) );
// Generate the Plot code
op = Overlay Plot( X( :name ), Y( :Data ), by( :label ) );
For( i = 1, i <= N Items( byVals ), i++,
// Get the LCL and UCL values for this by group
LCL = :LCL[(dt << get rows where( :Label == byVals[i] ))[1]];
UCL = :UCL[(dt << get rows where( :Label == byVals[i] ))[1]];
// Make sure the UCL and LCL values are displayed
chartMin = Min( :data[dt << get rows where( :Label == byVals[i])]);
chartMax = Max( :data[dt << get rows where( :Label == byVals[i])]);
If(LCL < chartMin, chartMin = LCL );
If(UCL > chartMax, chartMax = UCL );
chartRange5% = (chartMax - ChartMin)/20;
chartMin = chartMin - chartRange5%;
chartMax = chartMax + chartRange5%;
// Generate the code to produce the LCL and UCL reference lines
Eval(
Substitute(
Expr(
op << SendToByGroup(
{:Label == __byVals__},
Y Axis[1] << {{Min( __min__ ), Max( __max__ ),
Add Ref Line( __LCL__, "Solid", "Medium Dark Red", "LCL", 1 ),
Add Ref Line( __UCL__, "Solid", "Medium Dark Red", "UCL", 1 )}}
)
),
Expr( __byVals__ ), byVals[i],
Expr( __UCL__ ), UCL,
Expr( __LCL__ ), LCL,
Expr( __min__ ), chartMin,
Expr( __max__ ), chartMax
)
);
);回复:绘制行中列中定义的 UCL/LCL非常感谢吉姆,这适用于叠加图表。 你能指出我可以参考的地方吗(了解其他图表的设置) 并绘制其他图表。 脚本指南不是很有帮助。
另外,还有一件事,您能否添加一条线以确保限制线可见。 目前它们是不可见的。
感谢你的宝贵时间。
回复:绘制行中列中定义的 UCL/LCL非常感谢吉姆,这适用于叠加图表。 你能指出我也可以绘制其他图表的参考吗? 脚本指南不是很有帮助。
另外,还有一件事,您能否添加一条线以确保限制线可见。 目前它们是不可见的。
感谢你的宝贵时间。
回复:绘制行中列中定义的 UCL/LCL这是一个入门脚本,它将生成您想要的示例数据表。它生成一个叠加图。要为您的可变性图表做同样的事情,需要进行一些修改,因为每个平台都有不同的选项等。
Names Default To Here( 1 );
dt = Current Data Table();
// Get all of the by values, since separate code will have to be added for each
Summarize( dt, byVals = by( :Label ) );
// Generate the Plot code
op = Overlay Plot( X( :name ), Y( :Data ), by( :label ) );
For( i = 1, i <= N Items( byVals ), i++,
// Get the LCL and UCL values for this by group
LCL = :LCL[(dt << get rows where( :Label == byVals[i] ))[1]];
UCL = :UCL[(dt << get rows where( :Label == byVals[i] ))[1]];
// Generate the code to produce the LCL and UCL reference lines
Eval(
Substitute(
Expr(
op << SendToByGroup(
{:Label == __byVals__},
Y Axis[1] << {{Add Ref Line( __LCL__, "Solid", "Medium Dark Red", "LCL", 1 ),
Add Ref Line( __UCL__, "Solid", "Medium Dark Red", "UCL", 1 )}}
)
),
Expr( __byVals__ ), byVals[i],
Expr( __UCL__ ), UCL,
Expr( __LCL__ ), LCL
)
);
);回复:绘制行中列中定义的 UCL/LCL1.我假设列名称是X轴
- 我以叠加图为例,任何在 y 轴上具有数值的图(例如身高或体重)。 X 轴可以是您建议的名称。
2.对于定义为“高度”的行,您的 LCL 和 UCL 值对于每一行都是相同的。会不会这样,或者用真实的数据表,LCL和UCL的值会发生变化吗?
- 对于标签类别中的不同类别,限制可能会发生变化。 (为了澄清:一个 LCL/UCL 用于身高,一些其他 UCL/LCL 用于体重)
3. 当您说“叠加图”时,您是特指 JMP 中的叠加平台,还是仅表示数据值与 LCL 和 UCL 叠加,可以使用 Graph Builder 平台?
- 我以图为例,其中包含叠加图和带有限制的可变性图。 (这是通过在图中添加线条手动生成的),我正在寻找类似的图。
非常感谢您的宝贵时间!!
回复:绘制行中列中定义的 UCL/LCL1.我假设列名称是X轴
2.对于定义为“高度”的行,您的 LCL 和 UCL 值对于每一行都是相同的。会不会这样,或者用真实的数据表,LCL和UCL的值会发生变化吗?
3. 当您说“叠加图”时,您是特指 JMP 中的叠加平台,还是仅表示数据值与 LCL 和 UCL 叠加,可以使用 Graph Builder 平台?