大家下午好
我想创建一个图表,其中的点恰好落在每个箱线图和相关的小提琴图中。
使用图形生成器,我意识到这些点在框内没有排列。
有人知道如何解决这个问题吗?
我附上照片。

将 X 列和叠加列拖到 X 轴,然后将叠加列移动到颜色放置区域。

非常感谢,
我尝试了该程序,但它不起作用。
我想同时在 x 轴上放置几个连续变量,每个变量都分为 2 组。 在 y 轴上,我没有任何变量。
目的是将所有变量一起显示,并将每个变量与两组进行比较。
如果我按照您的建议进行操作,我一次只能在 y 轴上放置一个变量,因为如果我将所有变量放在一起,则会再次出现问题,即箱形图中的点不对齐;而我同时想要几个变量。
朱塞佩
所要做的就是获取您描述的数据表,并将其传递给 Graph Builder 以创建您希望它堆叠数据的显示,然后运行 Graph Builder。为了说明,给定下表有 4 个连续变量(它可以有尽可能多的连续变量),

一个只是使用
表=>堆栈
并堆叠所有连续的列,并确保 Group 列也被携带

我还将堆叠数据列重命名为测量,源标签列重命名为变量
现在,Graph Builder 可以使用结果数据来创建所需的图表

下面是一个脚本,它首先从 JMP 提供的样本数据表之一创建样本数据表,然后堆叠数据,最后使用 Graph Builder 创建上述图表
Names default to here(1);
// Create a sample data table that has multiple continuous variables with 2 groups
// Open Data Table: semiconductor capability.jmp
// → Data Table( "semiconductor capability" )
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
dt:Site << set name("Group");
dt << select where( :Group<=2 & :lot_id == "lot01" );
dt << invert row selection;
dt << delete rows;
dtSub = dt << Subset(
All rows,
columns( :Group, :NPN1, :NPN2, :NPN3, :NPN4 )
);
close(dt, nosave);
Wait(5); // Wait 5 seconds so one can see the initial data table
// Now just modify the data shape to set it up for Graph Builder to display the
// data as required
// First Stack all of the continuous variables into one column, and create a second
// column that indicates what column each row's value came from
dtStack = dtSub <<
Stack(
columns( :NPN1, :NPN2, :NPN3, :NPN4 ),
Source Label Column( "Variable" ),
Stacked Data Column( "Measurement" )
);
// Now graph the data placing the Variable and Group columns on the X axis and the
// Measurement column on the Y axis
// Also, remove the label from the Y axis
Graph Builder(
Size( 528, 458 ),
Show Control Panel( 0 ),
Variables(
X( :Variable ),
X( :Group, Position( 1 ) ),
Y( :Measurement ),
Color( :Group )
),
Elements(
Contour( X( 1 ), X( 2 ), Y, Legend( 14 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 13 ) ),
Points( X( 1 ), X( 2 ), Y, Legend( 15 ) )
),
SendToReport(
Dispatch( {}, "Y title", TextEditBox, {Set Text( "" )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{DispatchSeg( Poly Seg( "Violin (NPN1>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN1>>2)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN2>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN2>>2)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN3>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN3>>2)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN4>>1)" ), {Transparency( 0.5 )} ),
DispatchSeg( Poly Seg( "Violin (NPN4>>2)" ), {Transparency( 0.5 )} )}
),
Dispatch(
{},
"400",
LegendBox,
{Legend Position( {14, [3, 4], 13, [0, 1, 2, -3], 15, [5, 6]} )}
)
)
);
非常感谢你,
感谢您的宝贵建议,我终于达到了目标。
回想起来,解决方案很简单,但我事先没有考虑过你写的内容。 我问你一个好奇心:你知道如何将上标和下标放在x轴或纵坐标上的变量标签吗?
我注意到 JMP 缺乏这种简单但常见的可能性。
鉴于 JMP 的重要性,这个缺点是相当反常的。
最良好的祝愿
朱塞佩
JMP 使用 Unicode 字符集,它支持特殊的
é 和 ½ 等字符。 它保存没有特殊 Unicode 的文件
字符自动作为纯文本。 此选项由
默认。
换句话说,如果您将此类特殊的 Unicode 字符放在数据表中,它们会显示


感谢您的建议。
我想知道如何将例如组平方或 2 显示为下标。
或者在前面的示例中显示高度平方。
所以一般来说如何用上标或下标显示轴标签。
例如,如果我在纵坐标轴上写了 BMI (Kg / m ^ 2),我如何告诉 JMP “^ 2”是平方的,避免使用 ^ 符号?
最良好的祝愿
JMP 支持 UTF-8 和 UTF-16 Unicode 标准。 有关详细信息,请参阅脚本指南。它允许嵌入这些特殊字符而无需特殊处理。
JMP 还可以使用转义字符串“\!”打印此类字符后跟 Unicode 字符串。因此,要包含您指定为标签的内容,我将打开一个脚本窗口并将以下打印命令放在窗口中
print("BMI (Kg / m\!U00B2)");
运行此行后,日志中将显示以下内容,然后您可以将其剪切并粘贴到标签中
"BMI (Kg / m²)"
我希望有一条更直接的路径,但我不知道有一条。有关完整 Unicode 字符集的详细信息,请参阅脚本指南
