绘制类似 R 图表的图形,但显示的是正值和负值而不是范围。我有一张表格,每列有 200 个参数,每行有 300 个部分。每个部分都读取了两次,即 T0 和 T48。我想在 y 轴上为所有 200 个参数绘制类似于reading@T48 - reading@T0的图,x 轴是第 1 部分到第 300 部分。我打算使用 R 图表,因为它的范围 = 绝对值( reading@T48 - reading@T0 )。JMP 中是否有现成的可用内容,还是我应该对 200 个参数进行计算并使用图形生成器绘制它?
希望获得该论坛中经验丰富的人士的意见。
这是 JMP17。
基础数据分析与建模内容组织数据探索与可视化质量与工艺工程可靠性分析回复:绘制类似 R 图表的图,但显示正值和负值而不是范围。你是指控制图吗?
https://community.jmp.com/t5/Statistical-Thinking-for/Creating-X-bar-and-R-and-X-bar-and-S-Charts/ta-p/271884
除了图形生成器之外,还有一个控制图生成器。
https://www.jmp.com/support/help/en/17.2/?os=win&source=application#page/jmp/control-chart-builder.shtml#
您检查过这些选项吗?
回复:绘制类似 R 图表的图,但显示正值和负值而不是范围。我相信你可以通过使用 Graph Builder 来满足你的需求 这些图表是否是你想要的


回复:绘制类似 R 图表的图,但显示正值和负值而不是范围。为了使 JMP 完成所有计算,您可以堆叠列并使用列名/标签作为包装。
要计算绝对值 (diff(T0, T48)) ,可以使用 Graph Builder 的范围聚合:


dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
// use site 1&2 as T0 and T48
mySubset = dt << Subset(
Filtered Rows( :SITE == 1 | :SITE == 2 ),
Selected columns only( 0 )
);
// stack all columns to get a single column for the plot - and a label for the wrap
mySubset <<
Stack(
columns( Column Group( "Processes" ) )
);
// use range to calculate the abs(diff))
Graph Builder(
Variables( X( :Wafer ID in lot ID ), Y( :Processes ), Wrap( :Label ) ),
Elements( Bar( X, Y, Summary Statistic( "Range" ) ) ),
SendToReport(
Dispatch( {}, "Processes", TextEditBox, {Set Text( "abs(diff)" )} )
)
);
回复:绘制类似 R 图表的图,但显示正值和负值而不是范围。
这个图表就是我需要的。它显示了 reading@T48 - reading@T0 的正读数和负读数。你如何获得 y 轴的读数 (DIFF)?你是否在数据表中的每个参数都添加了一列来进行计算?
我的数据表有200个表。
我知道 R 图表,它有范围,但只是正读数。这是我做的。顶部是 X 条形图,但它列出了读数@T48 和读数@T0。
我在想,将 200 个参数的差异放入 R-chart 之类的东西中,但 Y 轴上有正数和负数读数,那么最好的方法是什么。R-chart 上是否有任何设置可以实现这一点,还是我需要 R-chart 中的一些 JSL 来实现这一点?

回复:绘制类似 R 图表的图,但显示正值和负值而不是范围。
是否有一个设置可以显示正读数和负读数而不是“范围”?
元素(条形图(X,Y,摘要统计(“范围”))),
我正在查看控制图生成器和控制图的 JSL 代码。
回复:绘制类似 R 图表的图,但显示正值和负值而不是范围。汇总统计/范围是获取“范围 = 绝对(读数@T48 -读数@T0 ) ”的最简单方法。
如果您希望计算实际差异 - 没有 abs() ,则必须通过列公式来计算。
回复:绘制类似 R 图表的图,但显示正值和负值而不是范围。虽然控制图具有一些自然特征,这些特征似乎是您想要的方向,因为它被设计用于 Walter Shewhart 定义的统计过程控制,但它不是通用的绘图工具,而是符合正确创建控制(即 Shewhart 图表)的规则。我认为您应该使用 Graph Builder 工具。
如果您只有几列/参数,可以轻松使用 JMP 的交互式功能来生成您想要的图表

当您拥有 200 个参数/列时,这会非常耗时。但是,JMP 再次通过 JSL 能够采取必要的步骤来为一个参数/列创建图表并将其应用于所有 200 个参数/列。
为此,第一步需要计算 T48-T0 值。这里的问题是,如上所述,您的数据有 300 个部件,每个部件都有 T0 和 T48 读数。我假设两个读数都在每个测量参数的同一列中。如果是这种情况,T0 和 T48 读数是相继找到的,还是给定部件的 T0 读数可以位于数据表的第 1 行,而该部件的 T48 读数则位于数据表的其他位置?另一个需要回答的问题是,对于具有 T0 读数的部件,是否有任何 T48 读数?这两个问题的答案将有助于确定计算生成所需图表所需的 T48-T0 差值的最简单和最有效的方法。
如果数据始终具有所有部件的 T0 和 T48 读数,并且读数始终是 T0 紧接着 T48 读数,那么只需直接转到 Graph Builder 即可设置生成所需的图表。Graph Builder 允许创建一个虚拟列,可以使用公式来生成所需的差异值。
如果数据顺序不正确,或者缺少 T48 读数,则必须添加额外的 JSL 来得出差异值。
如果您可以回答这些问题,并且如果可能的话,您能否提供仅包含几个部分和 2 或 3 个参数的数据样本,我就能为您提供所需的更完整的示例。
回复:绘制类似 R 图表的图,但显示正值和负值而不是范围。您必须通过列公式来计算它。

dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
// use site 1&2 as T0 and T48
mySubset = dt << Subset(
Filtered Rows( :SITE == 1 | :SITE == 2 ),
Selected columns only( 0 )
);
// stack all columns to get a single column for the plot - and a label for the wrap
stacked = mySubset <<
Stack(
columns( Column Group( "Processes" ) )
);
mySplit = stacked << Split(
Split By( :SITE ),
Split( :Processes ),
Group( :Wafer ID in lot ID, :Label ),
Output Table( "Split of Untitled by SITE" )
);
mySplit <<
New Formula Column(
Operation( Category( "Combine" ), "Difference (reverse order)" ),
Columns( :"1"n, :"2"n )
);
mySplit << Graph Builder(
Variables( X( :Wafer ID in lot ID ), Y( :"2-1"n ), Wrap( :Label, Size( 13 ) ) ),
Elements( Bar( X, Y, Legend( 6 ) ) ),
Local Data Filter(
Add Filter(
columns( :Label ),
Where( :Label == {"A1", "A2N", "A2P1", "CAP", "DE_H1", "DEM1", "DEP1", "EP2"} ),
)
)
);回复:绘制类似 R 图表的图,但显示正值和负值而不是范围。代码有效。我遵循代码的确切步骤,但使用数据表、公式和图表生成器来生成图表。我不得不花一些时间用我的数据表来调试 JSL 代码。
