動態更改發送到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為其生成的腳本,然後使用自己的變量對其進行編輯,而只是使其無法正常工作。 您的解決方案效果很好,可以幫助我更好地理解我要實施的所有不同更改的過程。