具有用户指定设置的所有选定列的可变性图循环大家好,
我对 JMP 脚本还不太熟悉。我需要一点支持。我现在正在设计一个应用程序,它可以执行以下操作
步骤 1:当用户单击按钮时。可变性图表窗口打开,我们在其中指定要绘制的所有列、x 轴分组以及当前活动数据表中的所有设置
obj = dt << 变异性图表();
第 2 步:我想在单独的变量中获取用户指定的项目,例如
col_list = obj 中选择的所有列的列表
x_grouping = 指定所有 x 变量
.. 对于 Variability Chart() 的所有参数
步骤 3:提取所有信息后,现在我将为每个列变量运行一个循环,但是
对于 i==1(第一列),我将在报告中绘制图表...用户将做一些更改(例如添加图例指定背景颜色等)
现在我将把这个模板(此图中的所有设置)应用于所有列,并在新窗口中为每一列创建一个报告。
我遇到以下问题:步骤 2 和步骤 3 如何提取 Variability Chart() 的参数并执行操作
PS:我还计划为其他图表类型并行实现此功能\
请指导
自动化和脚本回复:具有用户指定设置的所有选定列的可变性图循环以下是我认为您想要执行的操作的一种处理方法的示例。该脚本非常不完整,需要添加大量异常处理,但它应该可以为您提供一个起点。
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 ) ) ) );回复:具有用户指定设置的所有选定列的可变性图循环@txnelson非常感谢您的见解。实际上,我的主要目标是为每列设置单独的报告窗口。例如,如果我为 Y 选择 5 列,在报告中我们会得到所有 5 个参数的图。如果我在大纲框中的第一个图表中添加图例、更改颜色等,我想编写一个脚本以在单独的窗口中分离每个图,同时使用我对第一个图所做的更改。有没有办法实现这一点。请提出建议
回复:具有用户指定设置的所有选定列的可变性图循环步骤 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 框的信息,请参阅脚本指南
回复:具有用户指定设置的所有选定列的可变性图循环最简单的选择是自己构建变异图表启动器 UI。如果您不想这样做,您可以使用 << 获取脚本来获取已启动的脚本并解析其中的列
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;