사용자가 지정한 설정을 사용하여 선택한 모든 열에 대한 변동성 플롯 루프안녕하세요 여러분,
저는 JMP 스크립팅을 처음 접했습니다. 약간의 지원이 필요합니다. 지금은 다음을 수행하는 애플리케이션을 디자인하고 있습니다.
1단계: 사용자가 버튼을 클릭할 때. 변동성 차트 창이 열리고, 여기서 플로팅을 위한 모든 열, x축 그룹화 및 현재 활성 데이터 테이블의 모든 설정을 지정합니다.
obj = dt << 변동성 차트();
2단계: 사용자 지정 항목을 다음과 같은 별도 변수로 가져오고 싶습니다.
col_list = obj에서 선택된 모든 열의 목록
x_grouping = 지정된 모든 x 변수
.. Variability Chart()에 대한 모든 인수에 대해
3단계: 모든 정보를 추출한 후.. 이제 각 열 변수에 대해 루프를 실행하지만
i==1(첫 번째 열)의 경우 보고서에 차트를 그리게 되고 사용자는 몇 가지 변경 작업을 하게 됩니다(예: 범례 추가, 배경색 지정 등)
이제 이 템플릿(이 플롯의 모든 설정)을 모든 열에 적용하고 각 열에 대해 새 창에 보고서를 생성하겠습니다.
다음에서 문제가 발생합니다. 2단계와 3단계에서 Variability Chart()에 대한 인수를 추출하고 작업을 수행하는 방법
PS: 다른 차트 유형에 대해서도 이것을 병렬로 구현할 계획입니다.
안내해주세요
자동화 및 스크립팅Re: 사용자 지정 설정을 사용하여 선택한 모든 열에 대한 변동성 플롯 루프다음은 내가 당신이 하길 원한다고 믿는 것을 처리하는 한 가지 방법의 예입니다. 스크립트는 매우 불완전하고 많은 예외 처리가 추가되어야 하지만 시작점을 제공할 것입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
nw = New Window( "Col List Box Example",
modal,
H List Box(
Col List Box( all, width( 250 ) ),
V List Box(
Lineup Box( N Col( 2 ),
ybb = Button Box( "Y Col" ),
Y = Col List Box( Show( "run" ) ),
xbb = Button Box( "X Col" ),
x = Col List Box(),
Button Box( "Cancel",
nw << close window;
Throw();
),
Button Box( "OK",
ycols = y << get items;
xcols = x << get items;
)
)
)
)
);
// ycols and xcols now have been populated and you can then bring up one graph and
// let the user make the changes
nw = New Window( "Graphical Settings",
modal,
vc = dt << Variability Chart( Y( ycols[1] ), Model( "Main Effect" ), X( xcols[1] ) );
vc << on close(
// In the closing of the Variability Chart capture the script
theScript = Char( vc << get script );
);
);
// Run all of the graphs
For Each( {theCol, index},ycols, Eval( Parse( Substitute( theScript, ycols[1], theCol ) ) ) );Re: 사용자 지정 설정을 사용하여 선택한 모든 열에 대한 변동성 플롯 루프@txnelson 귀하의 통찰력에 감사드립니다. 사실 제 주요 목표는 각 열에 대해 별도의 보고서 창을 갖는 것입니다. 예를 들어 Y에 대해 5개의 열을 선택하면 보고서에서 모든 5개 매개변수에 대한 플롯을 얻습니다. 첫 번째 차트의 윤곽선 상자에 범례를 추가하고 색상을 변경하는 경우 첫 번째 플롯에 적용한 변경 사항을 사용하면서 각 플롯을 별도의 창에 분리하는 스크립트를 작성하고 싶습니다. 이를 달성할 수 있는 방법이 있습니까? 제안해 주십시오.
Re: 사용자 지정 설정을 사용하여 선택한 모든 열에 대한 변동성 플롯 루프1단계
obj = dt << Variability Chart();
변동성 차트 대화 상자가 열리고, 사용자가 확인을 클릭하면 해당 시점에 모든 차트가 실행됩니다.
그러나 변동성 차트가 실행되면 변동성 차트 플랫폼에서 반환된 스크립트를 쿼리하여 X 및 Y를 가져올 수 있습니다.
obj = Variability Chart( Y( :NPN1, :PNP1 ), Model( "Main Effect" ), X( :SITE ) );
theScript = char(obj << get script);
theYsList = words(word(1,substr(theScript,contains(theScript,"Y(")+2),")"),",");
theXsList = words(word(1,substr(theScript,contains(theScript,"X(")+2),")"),",");
2단계에서는 Displayed Plot을 직접 쿼리하여 다양한 설정을 가져올 수 있습니다. Variability Chart의 추가 응용 프로그램에 적용해야 하는 다양한 축의 프레임 크기, 최소값 및 최대값, 증분을 가져오는 방법은 스크립팅 인덱스에서 확인하세요.
제안하신 접근 방식은 이점보다 문제가 더 클 것 같습니다. 변동성 차트 대화 상자를 사용하는 대신 변동성 차트 대화 상자와 비슷한 대화 상자를 직접 만드는 것이 좋습니다. 그러면 필요한 모든 정보를 미리 얻을 수 있고, 그러면 2단계와 3단계를 구현하기가 훨씬 쉬워질 것입니다.
새 창 대화 상자를 만드는 방법에 대한 정보는 스크립팅 가이드를 참조하세요.
Re: 사용자 지정 설정을 사용하여 선택한 모든 열에 대한 변동성 플롯 루프가장 쉬운 옵션은 가변성 차트 런처 UI를 직접 빌드하는 것입니다. 그렇게 하고 싶지 않다면 << Get Script를 사용하여 시작된 스크립트를 가져오고 해당 열을 구문 분석할 수 있습니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Distribution();
dist = Current Report()[OutlineBox(1)] << Get Scriptable Object;
dist << get script;