JSL: 콤보 상자 및 다음/이전 버튼을 사용하여 그래프 업데이트를 스크립트하는 방법안녕 모두,
저는 더 큰 JSL 코드 세트에서 작업 중이며 사용자가 다른 보기를 순환할 수 있도록 일부 기능을 추가하는 데 관심이 있습니다. 아래에서 촬영.

데이터 테이블의 관련 열이 있는 몇 개의 콤보 상자가 필요하다는 것을 알고 있지만 PCA 플랫폼에서와 같이 그래프가 자동 업데이트되도록 하는 방법이나 다음 버튼 상자를 올바르게 호출하는 방법을 잘 모르겠습니다. 또한 사용자가 보기에서 더 쉽게 뒤로 이동할 수 있도록 이전 버튼 상자에 추가하고 싶습니다.
누구든지 이것을 구현하는 방법에 대한 제안이나 아이디어가 있으면 도움을 주시면 감사하겠습니다. 내가 가지고 있는 스크립팅 인덱스 또는 스크립팅 가이드에서 이 기능을 성공적으로 검색하거나 이에 대해 많이 찾지 못했습니다.
감사!,
DS
업데이트: 점점 더 가까워지고 콤보 상자의 목록을 순환하는 코드가 있으므로 매우 간단합니다(아래 참조). 여전히 문제가 되는 것은 그래프를 자동으로 업데이트하는 것입니다. 의도는 사용자가 다음 또는 이전을 클릭하면 그래프에서 y 변수가 자동으로 변경된다는 것입니다. BTW, 나는 그것을 테스트하기 위해 Boston Housing.jmp 파일을 사용하고 있습니다.
Names Default To Here( 1 );
dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
nw = New Window( "interactive Graph builder", V List Box( vlb1 = V List Box(), vlb2 = V List Box() ) );
xcol = 1;
ycol = 2;
lbcontent = V List Box(
Lineup Box( N Col( 5 ),
Text Box( "Select Params", <<SET font="" size=""></SET>
스크립팅Re: JSL: 콤보 상자 및 다음/이전 버튼으로 그래프 업데이트를 스크립팅하는 방법안녕하세요, 이에 대한 추가 도움이 필요하십니까?
임의의 순서로 배치되는 모든 열 대신 내 xlist에 특정 수의 열만 표시하려고 합니다.
xlist= {"크림", "녹스", "방사형"};
위의 스크립트를 사용하면 처음 3개의 열만 표시됩니다. 이 경우 위에서 언급한 열이 아닌 "crim", "zn" 및 "indus"입니다.
이에 대한 해결 방법이 있습니까?
감사.
Re: JSL: 콤보 상자 및 다음/이전 버튼으로 그래프 업데이트를 스크립팅하는 방법업데이트: 알겠습니다. 따라서 Scripting Guide에서 Append, Prepend, Sib Append 및 Sib Prepend에 대해 좀 더 읽어야 했습니다. 이 내용을 읽은 후 업데이트된 그래프를 앞에 추가해야 하는 컨테이너 상자를 결정하는 문제였습니다. 따라서 창에 다른 컨테이너 상자가 있는 경우 Sib Prepend() 명령을 사용해야 할 수도 있습니다. 이제 보니 이해가 됩니다.
첨부된 JSL은 관심 있는 사람이 있으면 내가 의도한 모든 작업을 수행합니다.
감사!,
DS
Re: JSL: 콤보 상자 및 다음/이전 버튼으로 그래프 업데이트를 스크립팅하는 방법안녕 @ian_jmp ,
새 창에 더 많은 요소가 있을 때 이 스크립트가 올바르게 작동하도록 하는 데 도움이 될 수 있기를 바랍니다. 자체적으로 작동하는 개념 스크립트를 가져와 데이터를 분할하고 결과를 표시하는 더 큰 스크립트로 옮길 수 있었습니다. JSL 코드를 파일로 첨부하고 있습니다. 그렇게 하는 것이 더 쉬울 수 있습니다. Boston Housing을 열고 데이터 테이블을 선택한 다음 X 요인 및 Y 응답을 선택하고 검증 부분과 시도할 최대 분할 수를 설정할 수 있습니다.
코드는 내가 원하는 출력을 생성하도록 작동합니다(아래).

그러나 매개변수를 순환하면 창 레이아웃이 다음과 같이 재정렬됩니다.

첫 번째 스크린샷과 동일한 레이아웃을 유지하고 싶지만 Prepend 및 Append 옵션이 올바른 레이아웃을 유지하지 않습니다. 도움을 주시면 감사하겠습니다.
감사!,
DS
Re: JSL: 콤보 상자 및 다음/이전 버튼으로 그래프 업데이트를 스크립팅하는 방법안녕 @ian_jmp ,
그것은 정확히 트릭을 수행했습니다. 감사합니다! 아래에 작업 코드를 게시하고 솔루션으로 표시하겠습니다. 이 코드는 내가 이 부분에서 작업을 시작할 때 의도한 것과 정확히 일치하기 때문입니다.
감사!,
DS
Append 대신 Prepend로 코드를 업데이트했습니다.
Names Default To Here( 1 );
dt = Open("$sample_data/Boston housing.jmp");
//dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
gb_default = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, 1 ) ), Y( Column( dt, 2 ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
gb_change = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, xcol ) ), Y( Column( dt, ycol ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
nw = New Window( "Interactive Graph",
gb = gb_default;
lbcontent = Lineup Box( N Col( 5 ),
Spacer Box( Size( 1, 0 ) ),
Text Box( "X", <<JUSTIFY text=""></JUSTIFY>Re: JSL: 콤보 상자 및 다음/이전 버튼으로 그래프 업데이트를 스크립팅하는 방법'추가'보다 '앞에 추가'를 시도하십시오.
Re: JSL: 콤보 상자 및 다음/이전 버튼으로 그래프 업데이트를 스크립팅하는 방법안녕 모두,
그래서 이전 토론 스레드를 찾을 수 있었습니다. 여기 어디 @ms 다른 사용자가 비슷한 일을 하도록 도왔습니다. 나는 그 아이디어에서 벗어나 내가 의도한 대로 작동하도록 수정할 수 있었습니다. 아래는 하나의 사소한 "결함"을 제외하고 해당 기능을 허용하는 코드입니다.
이 코드를 통해 사용자는 그래프로 표시할 X, Y 항목을 선택할 수 있으며 콤보 상자가 변경되거나 Prev/Next 버튼을 눌렀을 때 그래프를 업데이트할 수 있습니다. 따라서 이와 관련하여 코드는 의도한 대로 작동합니다.
다른 것을 플롯하도록 변경한 후 그래프 빌더 콘텐츠 상자는 콤보 상자/버튼 상자가 포함된 선택 라인업 상자와 위치를 바꿉니다. 그래프 수정 옵션이 포함된 라인업 상자를 창 하단에 유지하고 싶은데 어떻게 해야 할지 모르겠습니다.
이 문제를 해결하는 방법에 대한 제안을 주시면 감사하겠습니다! (끝에 코드).
감사!,
DS
시작 창(아래 옵션 포함):

X 또는 Y 콤보 상자 또는 이전/다음 버튼을 변경한 후 업데이트된 창:

코드는 다음과 같습니다.
Names Default To Here( 1 );
//dt = open("$sample_data\Boston Housing.jmp");//In case the file isn't already open.<BR />
dt = Data Table( "Boston Housing" );
xlist = dt << Get Column Names( String );
gb_default = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, 1 ) ), Y( Column( dt, 2 ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
gb_change = Expr(
Graph builder( Show Control Panel( 0 ), Variables( X( Column( dt, xcol ) ), Y( Column( dt, ycol ) ) ), Elements( Points( X, Y, Legend( 3 ) ) ) )
);
nw = New Window( "Interactive Graph",
gb = gb_default;
lbcontent = Lineup Box( N Col( 5 ),
Spacer Box( Size( 1, 0 ) ),
Text Box( "X", <<JUSTIFY text=""></JUSTIFY>Re: JSL: 콤보 상자 및 다음/이전 버튼으로 그래프 업데이트를 스크립팅하는 방법안녕 @DonMcCormack ,
예, 확실히 트릭을 수행할 수 있지만 사용자가 다음/이전 버튼을 클릭하거나 콤보 상자에서 다른 변수 집합을 선택할 때 그래프의 자동 업데이트를 원합니다. 기본적으로 PCA 플랫폼의 기능을 다시 만들려고 하지만 다른 스크립트에 통합하기 위해 일반화해야 합니다.
DS
Re: JSL: 콤보 상자 및 다음/이전 버튼으로 그래프 업데이트를 스크립팅하는 방법열 전환기를 사용하지 않는 이유는 무엇입니까?