JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.안녕하세요 여러분,
다음과 같은 방식으로 작동하는 스크립트를 만들려고 합니다.
1. 각각에 대한 확인란이 있는 매개변수 목록과 함께 "플롯할 매개변수 선택"을 표시하는 새 창이 열리고, 운영자는 이를 선택하여 플롯하려는 매개변수를 선택합니다.
2. 그런 다음 체크된 항목에 대해 해당 변수가 포함된 그래프 빌더를 엽니다.
현재 첫 번째 단계(새 창 및 확인란이 있는 목록)를 만들 수 있고 그래프를 생성하기 위해 스크립트를 작성하는 방법을 알고 있지만 그 사이의 링크가 누락되었습니다.처음에는 각 확인란을 개별적으로 호출한 다음 "cb1이 선택되면 그래프를 수행하고, 그렇지 않으면 cb2가 선택되면 ..."과 같은 "if"를 연속적으로 수행할 생각이었습니다. 훈련을 위해 다음 스크립트를 시도했지만 상자를 선택했는지 여부에 관계없이 항상 마지막에 "실패"가 표시되므로 실제로 상자를 선택하지 않습니다.
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"));어떻게 해야 할지 아시나요?
@martindemel
Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.그 죄송합니다. 그 사이에 나는 Mark에게도 칭찬을 했습니다.Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.마크에게 감사드립니다
Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.유용한 스크립트를 제공해 주신 Martin에게 감사드립니다.Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.방금 이 솔루션을 테스트했는데 완벽하게 작동했습니다. 감사합니다!!Re: 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 ) ) )
);
Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.잘 이해가 안가네요
운영자에게 열을 선택하도록 요청하기 위해 열 대화 상자를 사용하는 요점을 알지만, 이후 자동 그래프 작성과 이를 연결하는 방법을 여전히 모르겠습니다.Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.알았어, 말이 돼. 그런 경우에도 열 대화 상자를 사용할 수 있지만 올바른 변수 이름이 사용되도록 스크립트를 약간 조정해야 합니다. 좋은 점은 나중에 스크립트에서 사용하려는 자체 정의 변수 이름을 사용하고 테이블 변수 이름에 대한 종속성을 제거할 수 있다는 것입니다. 여전히 if_else 구조를 사용할 수 있지만 :age 대신 자신만의 이름을 사용하여 스크립트를 더욱 일반적이고 일반적으로 더욱 강력하게 만들 수 있습니다.Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.내가 사용한 Choose() 메서드는 Radio Box에 적합하지만 Check Box 입력 사례에는 유용하지 않습니다. 이는 명령문 중 하나만 실행되도록 허용합니다.
다음과 같이 시도해 보세요:
If(cb<<GET></GET>
CheckBox<
http://www.jmp.com/support/help/en/15.1/#page/jmp/display-functions.shtml#ww2548850
Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.안녕하세요 마틴,
사실 저는 전체 그림을 언급하지 않았습니다. 모든 그래프를 하나씩 작성하고 이를 저널에 저장한 다음 그래프 빌더를 닫는 스크립트가 이미 있습니다. 따라서 이 스크립트의 마지막 부분에는 모든 그래프가 포함된 일지가 있습니다.
이제 이 그래프에 변수 선택이라는 첫 번째 단계를 추가하고 싶습니다. 따라서 운영자가 원하는 것을 선택한 다음 선택한 모든 변수에 대해 두 번째 스크립 그래프 빌더 -> 저널을 적용해야 합니다.
말이 돼?
Re: 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 )
);
Re: 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>
Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.그런 경우에는 다음을 유지할 수 있습니다. 체크박스() 원래 사용하고 있던 디스플레이 - 두 항목(또는 둘 다 모두 선택하지 않음)을 선택한 경우 입력이 어떻게 사용될 것인지 귀하의 예에서 명확하지 않았습니다.RadioBox는 하나의 응답만 원하는 경우 좋은 컨트롤이지만 다음을 포함하여 모든 컨트롤 세트에 입력 방법 중 하나를 사용할 수 있습니다. 텍스트편집상자() 문자열 입력의 경우 또는 번호편집상자() 숫자 입력용.
Re: JSL - 변수를 선택하고 그래프 빌더에 플롯하려면 확인란을 선택하세요.정말 유망한 것 같습니다. 정말 감사합니다!! 그러나 당신이 제안한 것은 하나의 상자이거나 다른 상자이지만 둘 다는 아니지만 필요한만큼 많은 상자를 선택하고 싶습니다 ... 스크립트에서 무엇을 변경해야 합니까?
Re: 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에서 동시에 다른 창을 계속 사용할 수 있습니다.
도움이 되었기를 바랍니다!
Re: JSL - 그래프 빌더에서 변수를 선택한 다음 플롯하기 위한 체크 박스간단하고 효과적입니다. 좋아요!