具有用户指定设置的所有选定列的变异图循环大家好,
我对 JMP 脚本相当陌生。我需要一点小小的支持。我现在正在设计一个执行以下操作的应用程序
步骤1:当用户点击按钮时。变异性图表窗口打开,我们在其中指定用于绘图的所有列、x 轴分组以及当前活动数据表中的所有设置
obj = dt << 变异图();
第 2 步:我想在单独的变量中获取用户指定的项目,例如
col_list = obj 中选择的所有列的列表
x_grouping = 指定的所有 x 变量
..对于Variability Chart()的所有参数
第 3 步:提取所有信息后..现在我将为每个列变量运行一个循环,但是
对于 i==1 (第一列),我将在报告中绘制图表...用户将进行一些更改(例如添加图例指定背景颜色等)
现在我将将此模板(此图中的所有设置)应用于所有列,并在新窗口中为每列创建一个报告。
我面临以下问题:步骤 2 和步骤 3 如何提取 Variability Chart() 的参数并执行操作
PS:我还计划对其他图表类型并行实现这一点\
请指导
自动化和脚本编写回复:具有用户指定设置的所有选定列的变异图循环最简单的选择是自己构建变异性图表启动器 UI。如果您不想这样做,您可以使用 << Get Script 来获取已启动的脚本并解析其中的列
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Distribution();
dist = Current Report()[OutlineBox(1)] << Get Scriptable Object;
dist << get script;回复:具有用户指定设置的所有选定列的变异图循环步骤1
obj = dt << Variability Chart();
将打开“变异性图表”对话框,当用户单击“确定”时,将同时运行所有图表。
但是,运行变异性图表后,您可以查询从变异性图表平台返回的脚本并获取 X 和 Y
obj = Variability Chart( Y( :NPN1, :PNP1 ), Model( "Main Effect" ), X( :SITE ) );
theScript = char(obj << get script);
theYsList = words(word(1,substr(theScript,contains(theScript,"Y(")+2),")"),",");
theXsList = words(word(1,substr(theScript,contains(theScript,"X(")+2),")"),",");
对于步骤 2,您可以直接查询显示的图并获取各种设置。查看脚本索引,了解如何获取帧大小、最小和最大以及各个轴的增量等,您需要将其应用于变异性图表的其他应用程序。
我认为你建议的方法弊大于利。我建议您不要使用“变异性图表”对话框,而是创建自己的对话框,类似于“变异性图表”对话框,然后您将获得预先需要的所有信息,然后步骤 2 和 3 将变得更容易实施。
有关如何创建您自己的新 window.dialog 框的信息,请参阅脚本指南
回复:具有用户指定设置的所有选定列的变异图循环@txnelson非常感谢您的见解。实际上我的主要目标是为每一列都有单独的报告窗口。例如,如果我为 Y 选择 5 列,并且在报告中我们会得到所有 5 个参数的图。如果我在大纲框中的第一个图表中添加图例、更改颜色等,我想编写一个脚本来分隔单独窗口中的每个图,同时也使用我对第一个图所做的更改。有没有办法实现这一点。请建议
回复:具有用户指定设置的所有选定列的变异图循环这是处理我认为您想做的事情的一种方法的示例。该脚本非常不完整,需要添加大量异常处理,但它应该为您提供一个起点。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
nw = New Window( "Col List Box Example",
modal,
H List Box(
Col List Box( all, width( 250 ) ),
V List Box(
Lineup Box( N Col( 2 ),
ybb = Button Box( "Y Col" ),
Y = Col List Box( Show( "run" ) ),
xbb = Button Box( "X Col" ),
x = Col List Box(),
Button Box( "Cancel",
nw << close window;
Throw();
),
Button Box( "OK",
ycols = y << get items;
xcols = x << get items;
)
)
)
)
);
// ycols and xcols now have been populated and you can then bring up one graph and
// let the user make the changes
nw = New Window( "Graphical Settings",
modal,
vc = dt << Variability Chart( Y( ycols[1] ), Model( "Main Effect" ), X( xcols[1] ) );
vc << on close(
// In the closing of the Variability Chart capture the script
theScript = Char( vc << get script );
);
);
// Run all of the graphs
For Each( {theCol, index},ycols, Eval( Parse( Substitute( theScript, ycols[1], theCol ) ) ) );