사용자 지정 설정을 사용하여 선택한 모든 열에 대한 가변성 플롯 루프안녕하세요 여러분,
저는 JMP 스크립팅을 처음 접했습니다. 작은 지원이 필요합니다. 현재 다음을 수행하는 응용 프로그램을 설계 중입니다.
1단계: 사용자가 버튼을 클릭할 때. 플로팅, X축 그룹화 및 현재 활성 데이터 테이블의 모든 설정을 위한 모든 열을 지정하는 가변성 차트 창이 열립니다.
obj = dt << 변동성 차트();
2단계: 다음과 같은 별도의 변수로 사용자가 지정한 항목을 가져오고 싶습니다.
col_list = obj에서 선택된 모든 열의 목록
x_grouping = 지정된 모든 x 변수
.. 가변성 차트()의 모든 인수에 대해
3단계: 모든 정보를 추출한 후. 이제 각 열 변수에 대해 루프를 실행하지만
i==1(첫 번째 열)의 경우 보고서에 차트를 그릴 것입니다. 사용자는 몇 가지 변경 작업을 수행합니다(예: 범례 추가, 배경색 지정 등).
이제 이 템플릿(이 플롯의 모든 설정)을 모든 열에 적용하고 각 열에 대해 새 창에 보고서를 생성하겠습니다.
다음 문제에 직면하고 있습니다. 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;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단계에서는 표시된 플롯을 직접 쿼리하고 다양한 설정을 가져올 수 있습니다. 가변성 차트의 추가 응용 프로그램에 적용해야 하는 다양한 축 등의 프레임 크기, 최소 및 최대, 증분을 가져오는 방법에 대해서는 스크립팅 인덱스를 살펴보세요.
귀하가 제안한 접근 방식은 이익보다는 문제가 더 많을 것이라고 생각합니다. 변동성 차트 대화 상자를 사용하는 대신 변동성 차트 대화 상자와 유사한 고유한 대화 상자를 만드는 것이 좋습니다. 그런 다음 필요한 모든 정보를 미리 얻을 수 있도록 설정한 다음 2단계와 3단계를 수행합니다. 구현하기가 훨씬 쉬워졌습니다.
자신만의 새 window.dialog 상자를 만드는 방법에 대한 자세한 내용은 스크립팅 가이드를 참조하세요.
Re: 사용자가 지정한 설정을 사용하여 선택한 모든 열에 대한 가변성 플롯 루프@txnelson 귀하의 통찰력에 진심으로 감사드립니다. 실제로 나의 주요 목표는 각 열에 대해 별도의 보고서 창을 갖는 것입니다. 예를 들어 Y에 대해 5개의 열을 선택하면 보고서에 5개 매개변수 모두에 대한 플롯이 표시됩니다. 범례를 추가하고 개요 상자의 첫 번째 차트에서 색상 등을 변경하면 첫 번째 플롯에 적용한 변경 사항을 사용하면서 별도의 창에서 각 플롯을 분리하는 스크립트를 작성하고 싶습니다. 이것을 달성하는 방법이 있습니까? 제안해주세요
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 ) ) ) );