如何绘制标称数据与连续数据的值计数您好,我有一个关于如何对我正在查看的某些数据进行建模的问题 (JMP 11)。
最终目标:显示一个图表,显示标称数据列 (X) 的值计数与实际值的计数。连续数据列 (Y)。
进一步在杂草中:
我有一个标称数据列:DieNumber。
还有一个连续数据列:ResDelta。
我想显示 X 轴上显示的每个 DieNumber(例如:1、2、3)的计数,而不是每个 DieNumber 值,但在图形生成器中,当在 Y 轴上绘制 ResDelta(连续)时,将汇总统计量切换为 N是对 Y 进行汇总,而不是对 X 的每个值的计数进行汇总。
我发现的唯一解决方法是使用 Overlay Plot 函数,将 ResDelta 关联为 \[Y\],将 DieNumber 关联为 \[By\],但是当我希望将数据全部放在一个图表中时,这会单独拆分每个图表。
真的很挣扎,所以任何帮助将不胜感激,谢谢!视窗回复:如何绘制标称数据与连续数据的值计数感谢您的帮助! 这就是它最终的样子。 我会再清理一下,但仅此而已!

回复:如何绘制标称数据与连续数据的值计数如果您按“名称”对数据进行排序(使用@ih示例),以下公式将为您提供 JMP 11 中的列累积和
If(Lag(:Name) != :Name | Row() == 1, x = 0);
x++;
x
回复:如何绘制标称数据与连续数据的值计数这非常接近,我认为 JMP 11 没有 Col Cumulative Sum() 作为参数。 但这就是我想要看到的图表和建模类型!
回复:如何绘制标称数据与连续数据的值计数啊,谢谢你,这个例子澄清了你的用例!如果我理解正确的话,您希望将所有单独的赛道时间绘制为单独的点,而不仅仅是代表蒂姆两次跑步的单个点。我会通过制作一个专栏来计算到目前为止每个人绕着跑道跑步的次数,然后将其与消耗的卡路里进行绘制。
轨道列周围时间的公式可能如下所示(注意它只是对数字求和,而不是在第一个参数中包含列引用):


重新创建图表的脚本:
查看更多... 回复:如何绘制标称数据与连续数据的值计数感谢大家的帮助,如果这澄清了事情,我想提出一个可能更容易理解的类似问题。
问题示例:
蒂姆、亚历克斯和萨拉绕着跑道跑步。 每圈后,都会测量消耗的卡路里。
Tim 绕跑道跑了 2 次,消耗卡路里数分别为:75 和 155。
Alex 跑了大约 4 次,卡路里测量值分别为:60、130、195 和 240 卡。
Sara 跑了大约 5 次,测量值分别为:65、125、180、235 和 280 卡。
如何绘制(跑步次数)与(燃烧的卡路里)的关系图?
将此与我的问题联系起来:
(标称)名称 = ChipDieNum,
(标称)运行次数 = ChipDieNum 计数,
(连续)燃烧的卡路里 = Delta Res。
根据记录,我有 8,000 多个想要建模的数据条目。
回复:如何绘制标称数据与连续数据的值计数这是迄今为止所有解决方案中最接近的,但我遇到的问题是我的最终图需要是(ChipDieNum 的计数)与(Res Delta)。
例如:
ChipDieNum:401 运行校准 3 次,电阻增量:-10200; -2000; -100 欧姆。 数据中,ChipDieNum = (401), ChipDieNum Count = (3), & Res Delta = (-10200,-2000,-100)
ChipDieNum:510 运行校准 2 次,电阻增量:-13000、-2600; -200 欧姆。 显示为:ChipDieNum = (510)、ChipDieNum 计数 = (2)、Res Delta = (-13000,-2600,-200)
我试图通过绘制 ChipDieNum (X) 计数与 Res Delta (Y) 的关系,将芯片的 Res Delta 根据其校准次数的增加进行关联。 从另一种意义上说,我试图将多个 Res Delta (Y) 值与每个 ChipDieNum 值的 Count (X) 值关联起来,其中 ChipDieNum 为名义值,Res Delta 为连续值。
回复:如何绘制标称数据与连续数据的值计数这是我的另一种方法思考将在 JMP 11 中工作并绘制连续值,下面可能是使用直方图显示此数据的更简单方法:
方法一
使用序数数据类型的表格和本地数据过滤器计算要绘制的点,排除 x 轴上的缺失值。 然后在新数据表中将数据类型更改回连续和绘图。
- 使用如下公式添加一个新列(在较新版本的 JMP 中,您可以在平台启动对话框中直接执行此操作,而无需创建列):

- 打开表格,暂时将 y 变量更改为名义值,之后可以将其更改回来。
- 添加本地数据过滤器以排除缺少年龄的行,设置为名义,然后选择“0”

- 制作成数据表
- 将数据建模类型更改回连续
- 图形

方法2
在图形生成器中,仅使用 y 轴制作直方图,并添加本地数据过滤器,排除 x 轴上的缺失值。
- 为 x 轴变量创建相同的“缺失”列
- 将该列添加为图形生成器中的本地数据过滤器。
- 将y变量添加到y轴,它应该是连续的
- 将图表更改为直方图
- 将 y 轴上的轴设置更改为合理的值。 请注意,这仍然会进行一些合并,因此根据您在此处的设置,它可能会将高度 51.1 和 51.2 合并到计数为 2 的同一条中。

回复:如何绘制标称数据与连续数据的值计数你好@Jakedahsnake ,
就像其他成员试图找到解决您问题的方法一样,我将根据讨论尝试另一种解决方案。
为了创建所附图表,请执行以下步骤:
- 按 Die ID 创建新列“Count”:
// New formula column: Count
Data Table( "dieexample" ) << New Formula Column(
Operation( Category( "Aggregate" ), "Count" ),
Columns( :ResDelta ),
Group By( :Die )
);
- 创建一个图表,显示 ResDelta 根据点数的分布,并在“Overlay”中添加 Die ID 信息和箱线图以方便比较(可选,如果数据集很大,可能会很混乱):
Graph Builder(
Size( 984, 474 ),
Show Control Panel( 0 ),
Variables( X( :Count ), Y( :ResDelta ), Overlay( :Die ) ),
Elements( Points( X, Y, Legend( 10 ) ), Box Plot( X, Y, Legend( 12 ) ) ),
SendToReport(
Dispatch(
{},
"400",
LegendBox,
{Legend Position(
{10, [0, 1, 2, 3, 4], 12, [-1, -1, -1, -1, -1, -3, -3, -3, -3, -3]}
)}
)
)
);
完成此操作后,您应该看到附加的图表(我在图表和脚本中添加了箱线图,但如果这对您的目标没有用,您可以删除它们):

我还附上了用于演示的数据集以及附加的图形脚本。
希望对你有帮助,
回复:如何绘制标称数据与连续数据的值计数如果这是您想要的图表类型

这是我在 JMP 11 中使用的方法。较新的版本会更容易。
首先,我使用公式创建一个名为“count”的新列
If(Lag(:Die) != :Die | Row() == 1, x = 0);
x++;
x
然后将标签状态应用于计数列。
每行都有为其设置的标签状态。这将允许将值显示为标签。
ResDelta 列被拖动到 Y dop 区域
骰子被拖到 X 放置区域
将计数拖至颜色放置区域
完成最后一步后,点的颜色可以更改为白色,这样它们就不会显示在图表上。要更改颜色,只需转到图例中的每个彩色点,一次右键单击它们,然后将颜色更改为白色。
回复:如何绘制标称数据与连续数据的值计数不过,ResDelta 是连续数据。 另外,控制面板中的点下拉列表旁边没有红色箭头。 也许是因为我使用的是 JMP 11。
回复:如何绘制标称数据与连续数据的值计数啊,现在我明白了。您需要将 y 轴更改为序数或名义数据,并且然后选择要在点的红色三角形下汇总的响应轴。在某些情况下,您可能需要首先对数据进行分箱,例如四舍五入到最接近的整数,但在您的情况下,Res Delta 看起来已经是整数了。

现在,由于某种原因,当我运行此命令时,x 轴标签弄乱了,因此我必须进入 x 轴设置并修复它们。 所以,我认为这个脚本应该有效:
查看更多...
Names Default To Here( 1 );
dt = Open( "$Sample_data/big class.jmp" );
dt:height << Set Modeling Type("Ordinal");
dt:age << Set Modeling Type("Ordinal");
Graph Builder(
Size( 502, 256 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements(
Points( X, Y, Legend( 3 ), Summary Statistic( "N" ), Response Axis( "X" ) )
)
);
名称默认为此处( 1 ); dt = Open( "$Sample_data/big class.jmp" ); dt:height << 设置建模类型("Ordinal"); dt:age << 设置建模类型("Ordinal");图形生成器(大小(502, 256),显示控制面板(0),变量(X(:年龄),Y(:高度)),元素(点(X,Y,图例(3)),汇总统计(“N” " ), 响应轴( "X" ) ) ) );
但我需要使用这个:
查看更多...
Names Default To Here( 1 );
dt = Open( "$Sample_data/big class.jmp" );
dt:height << Set Modeling Type("Ordinal");
dt:age << Set Modeling Type("Ordinal");
Graph Builder(
Size( 501, 256 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements(
Points( X, Y, Legend( 3 ), Summary Statistic( "N" ), Response Axis( "X" ) )
),
SendToReport(
Dispatch(
{},
"age",
ScaleBox,
{Label Row(
{Tick Mark( Label( "12" ), Label( "0" ) ),
Tick Mark( Label( "13" ), Label( "1" ) ),
Tick Mark( Label( "14" ), Label( "2" ) ),
Tick Mark( Label( "15" ), Label( "3" ) ),
Tick Mark( Label( "16" ), Label( "4" ) ),
Tick Mark( Label( "17" ), Label( "5" ) )}
)}
)
)
);
名称默认为此处( 1 ); dt = Open( "$Sample_data/big class.jmp" ); dt:height << 设置建模类型("Ordinal"); dt:age << 设置建模类型("Ordinal");图形生成器(大小(501, 256),显示控制面板(0),变量(X(:年龄),Y(:高度)),元素(点(X,Y,图例(3)),汇总统计(“N” " ), 响应轴( "X" ) ) ), SendToReport( Dispatch( {}, "age", ScaleBox, {Label Row( {Tick Mark( Label( "12" ), Label( "0" ) ), Tick标记( 标签( "13" ), 标签( "1" ) ), 刻度线( 标签( "14" ), 标签( "2" ) ), 刻度线( 标签( "15" ), 标签( "3" ) ), 刻度线( 标签( "16" ), 标签( "4" ) ), 刻度线( 标签( "17" ), 标签( "5" ) )} )} ) ) );
回复:如何绘制标称数据与连续数据的值计数我尝试过这样做,但由于某种原因,JMP 总结了 Y(我猜是因为它是连续数据)而不是总结了 X 的 N,所以我最终得到了不同的图表:

虽然这显示了 ChipDieNumber 的计数,但它现在绘制在 Y 上而不是 ResDelta 上。
回复:如何绘制标称数据与连续数据的值计数在点下,尝试将汇总统计数据更改为“N”:

我认为这给出了您正在寻找的内容:

重新创建的脚本:
查看更多...
Names Default To Here( 1 );
dt = Open( "$Sample_data/big class.jmp" );
win = New Window("Example",
H List Box(
Graph Builder(
Size( 503, 256 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ), Summary Statistic( "N" ) ) )
),
Tabulate(
Show Control Panel( 0 ),
Add Table( Row Table( Grouping Columns( :age ) ) )
)
)
);
名称默认为此处( 1 ); dt = Open( "$Sample_data/big class.jmp" ); win = 新窗口("示例", H 列表框( 图形生成器( 大小( 503, 256 ), 显示控制面板( 0 ), 变量( X( : 年龄 ), Y( : 高度 ) ), 元素( 点( X , Y, 图例( 3 ), 汇总统计( "N" ) ) ) ), 制表( 显示控制面板( 0 ), 添加表格( 行表( 分组列( :age ) ) ) ) ) );
回复:如何绘制标称数据与连续数据的值计数感谢您的热烈欢迎,也感谢您花时间关注此事! 我按照我认为应该的方式绘制了 X 和 Y 上的变量,这是我所看到的:

这几乎是正确的,除了每个 X (ChipDieNum) 可以有多个 Y 值 (ResDelta)。 我不想绘制 X 值,而是绘制每个 X (ChipDieNum) 值的计数。
如前所述,X 设置为标称,Y 设置为连续。
回复:如何绘制标称数据与连续数据的值计数首先,欢迎来到社区。 我不确定我是否理解这个问题,但我附加了一个假数据集,其中包含两个变量 Die 和 ResDelta 的假数字。 我已经保存了图形生成器的脚本(绿色箭头)。 只需点击它即可。 这是你想要的? 顺便说一句,我使用的是 V17,所以不确定它是否能在 V11 上工作......所以这是脚本:
Graph Builder(
Variables( X( :Die ), Y( :ResDelta ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
)