动态更改发送到 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 为其生成的脚本,然后使用我自己的变量对其进行编辑,但无法使其正常工作。 您的解决方案效果很好,帮助我更好地理解了我想要实施的所有不同更改的流程。回复:动态更改发送到 GraphBuilder 的 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 )} );
);国标是平台对象<<调度消息发送至。 不要发送<<调度消息到报告表面。 发送到报告(...)告诉平台对象将消息分派到报告树中。
马克建议使用
gb rep = gb << Report;
gb rep[AxisBox(2)] << Format( Engineering, 12 );
在以上所有内容中,国标是图形生成器平台对象。 在马克的例子中,英国代表是属于图形生成器平台对象的显示框报告树。 发送<<报告消息给国标平台对象检索显示框树的根(报表表面,可见部分)。 对根下标会返回显示盒树的更具体的子树:
gb rep[AxisBox(2)]
这就是 Mark 想要将 Format 消息发送到的地方。 获取该下标的一种方法是使用“显示树结构”。
Show Tree Structure: right-click on the open-close triangle.Show Tree Structure: right-click on the open-close triangle.显示树结构:右键单击开闭三角形。
报表与树形结构窗口联动;我单击了高度轴。 树结构中的高度轴及其信息均突出显示。 AxisBox(2) 是报表中的第二个轴框。
回复:动态更改发送到 GraphBuilder 的 Dispatch() 选项要添加到@马克贝利脚本索引中的示例描述了可传递至 JMP 平台输出中的各种显示对象的所有消息和函数。。各种 JMP 平台的输出显示在充满对象的结构中,称为显示树。 因此,我还建议您阅读《脚本指南》中有关显示树的部分。它将打开一个全新的世界,人们可以利用 JMP 平台的输出来完成许多奇妙的事情。
回复:动态更改发送到 GraphBuilder 的 Dispatch() 选项正如我在回答此处的许多其他讨论时所说,开发“发送到报告”参数是为了让 JMP 在您保存脚本时可以保存自定义设置。 它不是为我们开发的。 还有更好的方法。 将 Format 消息直接发送到轴框。 像这样:
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 );