JSL - 用於選擇變數然後在圖形產生器中繪製的複選框大家好,
我正在嘗試製作一個可以這樣工作的腳本:
1. 開啟一個新窗口,顯示“選擇要繪製的參數”,其中包含每個參數的複選框,操作員可以透過勾選參數來選擇要繪製的參數。
2. 然後,對於勾選的項目,開啟帶有對應變數的圖形產生器。
我目前能夠邁出第一步(新視窗和帶有復選框的列表),並且我知道如何編寫腳本來創建圖形,但我錯過了它們之間的連結...我最初考慮單獨調用每個複選框,然後執行一系列“if”,例如“如果 cb1 被勾選,則繪製圖表,如果沒有,則如果 cb2 被勾選等等......”。 我嘗試使用以下腳本進行訓練,但無論我是否勾選該框,它最終總是顯示“失敗”,因此它並沒有真正選中該框:
Names Default To Here( 1 );
New Window( "Choose the parameters to be plotted",
cb1 = Check Box ("Parameter 1",0),
cb2 = Check Box ("Parameter 2",0)
);
wait(5);
If (cb1 == 1,
Graph Builder(
Variables(
X( :Name( "Process duration" ) ),
Y( :Name( "Parameter 1" ) ) ) ),
New Window( "Failed"));你知道該怎麼做嗎?
@馬丁德梅爾
回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框對此感到抱歉。 同時,我也對馬克表示敬佩。回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框馬克:)回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框感謝馬丁,提供了這個有用的腳本。回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框我剛剛測試了這個解決方案,效果非常好,謝謝!!回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框例子:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dialog = Column Dialog(
col = Col List( "X, Factor", Min Col( 1 ), Max Col( 1 ) )
);
If( dialog["Button"] == -1, Throw( "User cancelled" ) );
Remove From( dialog );
Eval List( dialog );
x = col[1];
dt << Graph Builder(
Size( 534, 454 ),
Show Control Panel( 0 ),
Variables( X( x ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 3 ) ) )
);
回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框我不確定是否明白
我明白使用列對話框要求操作員選擇列的意義,但我仍然不知道如何將其與自動圖形建立連結?回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框好的,有道理。 即使這樣,您也可以使用列對話框,但您需要稍微調整腳本以使用正確的變數名稱。 好處是您可以使用要在腳本中進一步使用的自訂變數名稱,並消除對錶變數名稱的依賴。 您仍然可以使用 if_else 結構,但可以使用自己的名稱來代替 :age,這使得腳本更通用,通常也更健壯。回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框我使用的 Choose() 方法適用於單選框,但對於複選框輸入情況沒有那麼有用 - 它只允許執行其中一個語句。
嘗試類似的方法:
If(cb<<GET></GET>
請注意,CheckBox<
http://www.jmp.com/support/help/en/15.1/#page/jmp/display-functions.shtml#ww2548850
回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框嗨馬丁,
實際上我沒有提到全貌:我已經有一個腳本可以一一建立所有圖形,將它們保存到日誌中,然後關閉圖形生成器。 所以在這個腳本的最後,我有一本包含所有圖表的日記。
現在我想在該圖上新增第一步,即變數選擇。 因此,我需要操作員選擇他想要的內容,然後對於所有選定的變量,第二個票據圖產生器 -> 日誌應該適用。
那有意義嗎?
回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框可能不完全是您所需要的,但如果您想為每個選定的變數建立圖表,您可能需要考慮一個列對話框,讓操作員選擇他想要在X 和Y 角色中繪製的變量,然後將其繪製為每個選定的變數:
https://www.jmp.com/support/help/en/15.1/?os=win&source=application#page/jmp/construct-a-column-dialog.shtml#
Names Default to Here(1);
dt = Open("$SAMPLE_DATA/Tablet Production.jmp", Invisible);
cdb = Column Dialog("Add continuous variables you want to plot against Dissolution" ,
colxx = ColList( "X", Min Col( 1 ), Modeling Type( "Continuous" ) ),
);
show(cdb);
Eval List(cdb[1::N Items(cdb)-1]);
Graph Builder(
Size( 526, 454 ),
Show Control Panel( 0 ),
Variables( X( colxx[1] ), Y( :Dissolution )),
Elements( Points( X, Y, Legend( 3 ) ), Line Of Fit( X, Y, Legend( 5 ) ) ),
Column Switcher( colxx[1], colxx )
);
回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框我嘗試在您的範例中將單選框變更為複選框,但即使選擇了多個框,它也只執行一個圖形(實際上它不適用於高度,我不知道為什麼)... 我想我仍然懷念那個劇本中的一些東西:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
rc = New Window("Choose the parameters to be plotted",
cb = Check box ({"weight", "height", "sex"}),
Button Box("Ok",
Choose(cb<<GET></GET>
回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框在這種情況下,您可以保留複選框()顯示您最初使用的 - 從您的示例中我不清楚如果兩個項目(或兩者都沒有)都被選中,那麼輸入將如何使用。如果您想要一個且僅一個回應,RadioBox 是一個很好的控件,但是您可以將任一輸入方法與任何一組控件一起使用,包括文字編輯框()用於字串輸入或數字編輯框()用於數位輸入。
回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框這看起來很有希望,非常感謝! 然而,在您的建議中,它要么是一個框,要么是另一個框,但不能同時是兩個框,而我希望根據需要勾選盡可能多的框...... 我應該在你的腳本中更改什麼?
回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框當提示在對話方塊中輸入時,有兩種常見的操作方法:
1. 使用模式對話方塊在等待輸入時暫停腳本的執行:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
// Prompt for the input
rc = New Window("Choose the parameters to be plotted",
<<MODAL></MODAL>// Launch report if Ok was pressed
if (rc["Button"] == 1,
// Ok pressed
Choose (rc["rb"],
Graph Builder(Variables(X(:age), Y(:weight))),
Graph Builder(Variables(X(:age), Y(:height)))
);
,
// Cancel
"Cancel"
)
在您的腳本中,變數「cb1」是一個 DisplayBox。在本例中,<<傳回結果選項將所有顯示框資訊轉換為結果資料。在模式對話框中,在繼續執行之前會刪除這些框,因此這一點很重要!
2. 將對話方塊的「動作」部分作為按鈕腳本的一部分:
Names Default To Here( 1 );
dt=Open("$SAMPLE_DATA/Big Class.jmp");
// Prompt for the input and create graph
rc = New Window("Choose the parameters to be plotted",
rb = Radio Box({"weight", "height"}),
Button Box("Ok",
Choose(rb<<GET></GET>
模式對話方塊將阻止對其他視窗的所有其他輸入,而第二種方法將允許您同時繼續在 JMP 中使用其他視窗。
希望有幫助!
回覆:JSL - 用於選擇變數然後在圖形產生器中繪製的複選框簡單有效。好的!