<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />大家好,
我正在寻找数据可视化方面的帮助。 我有一个数据集,其中包含大约 200 个设备的温度测量值和电压测量值。 对于每个设备,在 7 个不同的温度下测量电压。 整个温度范围内的电压分布是非线性的。 我想要做的是将曲线拟合到每个设备的温度范围内的电压,并将所有这些曲线叠加到一个图中。 使用 JMP 是否可以实现这一点?如果可以,最好的方法是什么?
在双变量平台中使用“拟合样条线”可以为我提供所需的可视化效果,但一次只能在一台设备上进行。 (参见图),但我希望能够将多个设备相互覆盖(或者可能全部覆盖)。

当然,可能有一个脚本解决方案,但我想我会看看是否有交互使用 JMP 的替代方案。 我将非常感谢一些见解。
谢谢你!
尝试“Fit Y By X”中的“Group By...”选项:
Names Default To Here( 1 );
// Make a table
n = 10;
t1Vals = (1::n)` + J(n, 1, RandomNormal(0, 0.05));
t2Vals = (1::n)` + J(n, 1, RandomNormal(0, 0.05));
dt = New Table( "Voltage and Temperature",
New Column( "V1", Numeric, Continuous, Formula( Random Normal() ) ),
New Column( "T1", Numeric, Continuous, Values(t1Vals)),
New Column( "V2", Numeric, Continuous, Formula( Random Normal() ) ),
New Column( "T2", Numeric, Continuous, Values(t2Vals))
);
dt << runFormulas;
// Stack the table
dt2 = dt << Stack(
columns( :V1, :T1, :V2, :T2 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Stack By Row( 0 ),
Number of Series( 2 ),
OutputTable("Voltage and Temperature Stacked")
);
Column(dt2, "Data 2") << setName("Temperature");
Column(dt2, "Data") << setName("Voltage");
dt2 << deleteColumn("Label 2");
dt2 << colorByColumn(:Label);
// Use 'Group By' in 'Fit Y By X' . . .
biv = dt2 << Bivariate(
Y( :Voltage ),
X( :Temperature ),
Fit Where( :Label == "V1", Fit Spline( 0.1, {Line Color( {208, 64, 86} )} ) ),
Fit Where( :Label == "V2", Fit Spline( 0.1, {Line Color( {64, 110, 211} )} ) )
);
嗨伊恩,
感谢您提供有用的解决方案。 这将是一种快速的方法,除了测量每个设备的电压时测量的温度并不相同这一事实之外。 抱歉,我应该更清楚地说明这一点(尽管它们很接近)。
最接近我想要的输出是使用叠加图,将 temp 指定为 x 变量,将 y 指定为电压,并将“part id”指定为分组变量。 然后使用平台热点上的连接点选项。 (见下图)。
当然,唯一的问题是我没有为每个设备获得很好的拟合曲线,也没有对线条本身进行太多定制。
你好,恩凯莱,
您至少有两个选择,其中一个不完全是您想要的,另一个有点乏味,可能最好用脚本来完成。
图形生成器是您的第一个选项,您可以突出显示所有 7 列或电压列并将其拖动到 Y 轴,然后将温度拖动到 X 轴。 单击顶部菜单栏(左起第三个)上的拟合线图标,然后在对话框左侧向下滚动到拟合线。最接近样条拟合的是三次拟合 - 所以不完全是你想要的。
在第二个选项中,您需要选择基线拟合,然后对于所有其他选项,在图表中单独右键单击并选择复制框架内容。每次复制后,返回到基线图并右键单击并选择粘贴框架内容。只要你的轴不是太远,它看起来应该很不错。 只是费时间而已。
如果每个电压测量值都在其自己的列中,则使用图形生成器,您只需将“温度”拖动到 X 放置区域,选择您喜欢的电压,然后将它们同时拖动到 Y 放置区域。