动态更改发送到GraphBuilder的Dispatch()选项我需要根据脚本中的选项来更改发送到“图形生成器”的某些选项。我不知道如何使它工作。
该脚本可以使图形Scale(“ Log”),Format(“ Engineering”,12):
Graph Builder(
Variables(
X( :Split ),
X( :Wafer, Position( 1 ) ),
Y( As Column( analysisTests[i] ) ),
Color( :Split )
),
Elements(
Points( X( 1 ), X( 2 ), Y, Legend( 21 ) ),
Box Plot( X( 1 ), X( 2 ), Y, Legend( 22 ) )
),
SendToReport(
Dispatch(
{},
analysisTests[i],
ScaleBox,
{Scale("Log"), Format("Engineering", 12)}
),
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( title )}
)
)
)
但是,当我尝试以这种方式发送该信息时,即使它对我来说看起来一样,也不起作用:
ScaleboxVariables = {};<BR />if(log != 0,
ScaleboxVariables = Insert(ScaleboxVariables, Expr(Scale("Log")) );
ScaleboxVariables = Insert(ScaleboxVariables, Expr(Format( "Engineering", 12 )) );
);
Dispatch(
{},
analysisTests[i],
ScaleBox,
ScaleboxVariables
),
任何帮助,将不胜感激!
图形脚本编写回复:动态更改发送到GraphBuilder的Dispatch()选项正如我在回答这里其他许多讨论时所说的那样,开发了“发送到报表”参数,以便JMP在保存脚本时可以保存自定义。 它不是为我们开发的。 有更好的方法。 将格式消息直接发送到轴框。 像这样:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
gb = dt << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :height ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
gb rep = gb << Report;
gb rep[AxisBox(2)] << Format( Engineering, 12 );
回复:动态更改发送到GraphBuilder的Dispatch()选项要添加到@markbailey可以在JMP平台的输出中传递给各种显示对象的所有消息和功能,并在Scripting Index中提供了示例。。各种JMP平台的输出显示在充满对象的结构中,称为显示树。 因此,我还建议您阅读《显示树脚本指南》中的这一节。它将为JMP Platforms的输出打开一个奇妙的事物的全新世界。
回复:动态更改发送到GraphBuilder的Dispatch()选项两个学期
- 平台对象:图形生成器背后的逻辑。 它是不可见的。
- 报表表面显示框树:图形构建器的输出。 可见的图形,滑块,按钮。
标记是正确的;调度语法是为机器而不是人类创建的。 Dispatch消息包含平台对象用于在报表中查找显示框的信息。如果您需要使用它,发送报告调度必须像这样发送:
dt = Open( "$sample_data/big class.jmp" );
gb = dt << Graph Builder(
Size( 512, 442 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
// SendToReport(
// Dispatch( {}, "weight", ScaleBox, {Scale( "Log" ), Format( "Best", 6 ), Min( 60 ), Max( 200 ), Inc( 1 ), Minor Ticks( 1 )} ),
// Dispatch( {}, "height", ScaleBox, {Format( "Engineering", 12 )} )
// )
);
newFormat = {"Percent", "Engineering", "Best"};
newScale = {"Linear", "Log", "Linear"};
newInc = {10, 1, 20};
For( i = 1, i <= N Items( newFormat ), i += 1,
Wait( 1 ); // wait only needed for the demo!
gb << Dispatch( {}, "weight", ScaleBox, {Scale( newScale[i] ), Format( "Best", 6 ),
Min( 60 ), Max( 200 ), Inc( newInc[i] ), Minor Ticks( 0 )} );
gb << Dispatch( {}, "height", ScaleBox, {Format( newFormat[i], 12 )} );
);b是平台对象<<派遣消息发送到。 不要发送<<派遣消息到报告表面。 SendToReport(...)告诉平台对象将消息分派到报告树中。
马克建议使用
gb rep = gb << Report;
gb rep[AxisBox(2)] << Format( Engineering, 12 );
在上述所有方面, b是图形构建器平台对象。 以马克为例, gb代表是属于图构建器平台对象的显示框报告树。 发送<<报告给的消息b平台对象检索显示框树的根(报表表面,可见部分)。 对根进行下标将返回显示框树的更具体的子树:
gb rep[AxisBox(2)]
这就是Mark想要发送Format消息到的东西。 一种获取下标的方法是使用“显示树结构”。
显示树结构:右键单击开闭三角形。
报告和树形结构窗口是链接的;我点击了高度轴。 树结构中的高度轴及其信息均突出显示。 AxisBox(2)是报表中的第二个轴框。
回复:动态更改发送到GraphBuilder的Dispatch()选项谢谢马克,这非常有帮助。 我一直在用图形生成器构建所需的图形,然后复制JMP为其生成的脚本,然后使用自己的变量对其进行编辑,只是无法使其正常工作。 您的解决方案效果很好,可以帮助我更好地理解我要实施的所有不同更改的过程。