使图形生成器的“尺寸”缩放到轴假设我有一个在制造产品表面发现的缺陷数据集,如下所示:
| 序号 | 尺寸(厘米) | 高度(厘米) | 直径(厘米) |
| 0001 | 2.3 | 1.15 | 0.04 |
| 0001 | 2.7 | 0.44 | 0.12 |
| 0001 | 1.5 | 2.6 | 0.35 |
| 0002 | 5.4 | 1.9 | 0.17 |
| 0002 | 3.1 | 4.1 | 0.59 |
在图形生成器中,假设我对 SN 进行本地数据过滤,并绘制 X(cm)->X、Y(cm)->Y 和直径(cm)->尺寸,有没有办法让生成的点尺寸按比例绘制在图上?
数据探索与可视化回复:使图形生成器的“尺寸”缩放到轴解决方案简单,但规模不大

只需轻轻点击即可解决问题:
在图形生成器中,我将 X 和 Y 放在 X 和 Y 轴框上,然后将 SN 拖到颜色角色中,将直径拖到尺寸角色中。
脚本如下所示:
Graph Builder(
Size( 409, 391 ),
Variables(
X( :"X(cm)"n ),
Y( :"Y(cm)"n ),
Color( :SN ),
Size( :"Diameter(cm)"n )
),
Elements( Points( X, Y, Legend( 9 ) ) )
);
回复:使图形生成器的“尺寸”缩放到轴看起来你很好地复制了问题中的过程。我希望有人可能知道 Shift-click 选项或其他有助于缩放的东西。
回复:使图形生成器的“尺寸”缩放到轴我认为您可能需要使用图形脚本来执行此操作。下面是一个非常快速且实用的解决方案,它可以让您了解可以做什么
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("SN", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 2, 2])),
New Column("X(cm)", Numeric, "Continuous", Set Values([2.2999999999999998, 2.7000000000000002, 1.5, 5.4000000000000004, 3.1000000000000001])),
New Column("Y(cm)", Numeric, "Continuous", Set Values([1.1499999999999999, 0.44, 2.6000000000000001, 1.8999999999999999, 4.0999999999999996])),
New Column("Diameter(cm)",
Numeric,
"Continuous",
Set Values([0.040000000000000001, 0.12, 0.34999999999999998, 0.17000000000000001, 0.58999999999999997])
)
);
gb = dt << Graph Builder(
Size(518, 454),
Show Control Panel(0),
Lock Scales(1),
Variables(X(:"X(cm)"n), Y(:"Y(cm)"n), Size(:"Diameter(cm)"n)),
Elements(Points(X, Y, Legend(5))),
Local Data Filter(Add Filter(columns(:SN), Modeling Type(:SN, Nominal)))
);
frame = Report(gb)[FrameBox(1)];
Eval(EvalExpr(
frame << Add Graphics Script(
cur_gb = Expr(Report(gb));
fb = cur_gb[FrameBox(1)];
ms = fb << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
For(i = 1, i <= N Items(xs), i++,
dt = cur_gb << Get Data Table;
m_rows = dt << Get Rows Where(:"X(cm)"n == xs[i] & :"Y(cm)"n);
diam = dt[m_rows, "Diameter(cm)"][1];
Circle({xs[i], ys[i]}, diam/2);
);
);
));

另请阅读圆的半径如何表现https://www.jmp.com/support/help/en/18.0/#page/jmp/graphics-functions.shtml?os=win&source=application#ww2626013
回复:使图形生成器的“尺寸”缩放到轴谢谢, @jthi——你显然对 jsl 有着令人印象深刻的掌握!
这感觉像是 JMP 应该具备的功能,而且似乎很容易融入标记大小设置中(至少从 UI 角度来看)。我会将其添加到愿望清单中。
回复:使图形生成器的“尺寸”缩放到轴愿望清单项目发布在此处:
图形生成器:使用“大小放置区”启用轴感知点的大小调整 - JMP 用户社区
@jthi——可以将上面的示例图片复制/粘贴到愿望清单项目中吗?
回复:使图形生成器的“尺寸”缩放到轴当然。您可以稍微修改一下,在 Circle 中使用“FILL”参数,这样它看起来会像这样(执行此操作时隐藏图例可能是个好主意,因为圆圈包含尺寸信息而不是底层标记)

回复:使图形生成器的“尺寸”缩放到轴我并不完全了解整个讨论,但我认为一些注释可能相关。
- 右键单击 > 图形 > 大小/比例 > 调整为等距时,有一个“调整为等距”命令。该命令调整图形大小,使 X 和 Y 每个像素的值相同。但它不会持续存在。
- 尺寸变量表示为圆的面积,而不是直径。
- 几个版本之前,我们在标记和图形生成器(在点红色三角形菜单下称为形状表达式)中添加了标记绘制博览会功能。

Graph Builder(
Size( 496, 501 ),
Show Control Panel( 0 ),
Lock Scales(1),
Variables( X( :"X(cm)"n ), Y( :"Y(cm)"n ) ),
Elements(
Points( X, Y, Legend( 5 ),
Set Shape Expression(
Expr(
Function( {this seg, this row, x, y, pixel size, row state},
{r = :"Diameter(cm)"n / 2},
Oval( x - r, y + r, x + r, y - r, 1 )
)
)
)
)
),
Local Data Filter( Add Filter( columns( :SN ), Modeling Type( :SN, Nominal ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox, {Size To Isometric} )
)
);