動態更改發送到 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 );