안녕하세요 커뮤니티,
나는 비교적 jmp를 처음 접했고 등고선 플롯 질문이 있습니다.
저는 설계가 중심 합성물인 20개의 실험을 수행했습니다. 내 데이터에 반응 표면 모델을 적용했습니다.
그런 다음 모델을 사용하여 전체 디자인 공간에 대한 예측을 생성했습니다. 그런 다음 예측의 등고선 플롯을 만들었습니다.
등고선 플롯에 x로 표시된 실험 데이터 포인트를 추가할 수 있는 방법이 있습니까? 실험에서 찾은 종속 변수의 값으로 이러한 데이터 포인트에 레이블을 지정할 수 있는 방법도 있습니까?
내가하고 싶은 것을 설명하기 위해 페인트로 그린 이미지를 첨부했습니다. 프로그래밍을 할 줄 몰라서 메뉴선택이나 스크린샷으로 답글 주시면 도움이 될 것 같습니다. 매우 감사합니다
당신의 답변에 감사드립니다. 스크립트를 이해할 수 없었습니다. 하지만 방법을 알아냈습니다. 그래프 메뉴에서 등고선 플롯으로 내 등고선 플롯을 만들었습니다. 독립 변수의 산점도도 만들었습니다. 산점도의 프레임 내용을 등고선도에 복사했습니다. 그런 다음 텍스트 주석으로 포인트에 수동으로 레이블을 지정했습니다.
안녕 @알렉산드루스 ,
커뮤니티에 오신 것을 환영합니다! 이것은 많은 JMP 스크립팅을 수행해야 하기 때문에 새로운 JMP 사용자에게는 약간 생소하지만 다음과 같이 진행합니다.
별도의 사용자 정의 프로파일러가 아닌 Fit Model에서 윤곽 프로파일러를 보고 있다고 가정합니다.어느 쪽이든 동일한 일반 단계가 적용됩니다.샘플 데이터 라이브러리의 Custom RSM 샘플 데이터 세트를 사용하고 있습니다.
새 스크립트를 열어 시작하고 데이터 테이블에 대한 변수 참조를 만듭니다.여기서는 Custom RSM 테이블을 여는 중입니다.
dt = Open("$Sample_Data\Design Experiment\Custom RSM.jmp");프로파일러가 포함된 보고서의 스크립트를 가져와야 합니다.Fit Model의 경우 스크립트는 Fit Model(Y(:Y), Effects(...),...); 프로파일러의 내용을 사용자 지정할 수 있도록 보고서 창에 대한 참조를 가져와야 합니다.Custom RSM 예제를 사용한 방법은 다음과 같습니다.
rpt = (
dt << Fit Model(
Y( :Y ),
Effects(
:X1 & RS,
:X2 & RS,
:X3 & RS,
:X1 * :X1,
:X1 * :X2,
:X2 * :X2,
:X1 * :X3,
:X2 * :X3,
:X3 * :X3
),
Personality( "Standard Least Squares" ),
Emphasis( "Effect Screening" ),
Run(
Contour Profiler(
1,
Term Value(
X1( 0, Lock( 0 ), Show( 1 ) ),
X2( 0, Lock( 0 ), Show( 1 ) ),
X3( 0, Lock( 0 ), Show( 1 ) )
),
Contour Value( Y( 62.703, Min( 52.5 ), Max( 75 ) ) ),
Grid Density( "40 x 40" ),
Contour Grid( 50, 80, 5, Y ),
Horizontal Factor( :X1 ),
Vertical Factor( :X2 ),
Y Colors( 21 ),
Up Dots( 0 )
),
:Y << {Summary of Fit( 1 ), Analysis of Variance( 1 ),
Parameter Estimates( 1 ), Effect Details( 0 ), Sorted Estimates( 0 ),
Scaled Estimates( 0 ), Plot Actual by Predicted( 1 ), Plot Regression( 0 ),
Plot Residual by Predicted( 1 ), Plot Residual by Row( 1 ),
Plot Studentized Residuals( 0 ), Plot Effect Leverage( 0 ),
Box Cox Y Transformation( 1 ), Show VIF( 1 )}
)
)
) << Report;Fit Model 스크립트 앞에 "rpt = (dt <<")를 붙인 다음 백엔드에 ") << Report;"를 넣었습니다.변수 "rpt"는 이제 Fit Model에 대한 보고서 창에 대한 참조를 포함합니다.
다음으로 Contour Profiler에서 플로팅하고 있는 변수의 값을 가져와야 합니다.내 예에서 2개의 변수는 x1과 x2입니다.포인트 레이블에 대한 Y 값도 필요합니다.
//plotted points
x1_vals = :x1 << Get Values;
x2_vals = :x2 << Get Values;
//values used in labels
y_vals = :y << Get Values;
이제 다음과 같이 그래픽 스크립트를 추가하여 프로파일러 내부에 점과 텍스트를 그릴 수 있습니다.
rpt["Contour Profiler"][FrameBox(1)] << Add Graphics Script(
Marker(x1_vals, x2_vals);
for(i=1,i<=N Row(dt),i++,
text(eval list({x1_vals[i],x2_vals[i]+0.05}),char(y_vals[i]));
)
);
괄호 안의 항목은 플롯이 포함된 프레임 상자에 도달하기 위해 디스플레이 트리를 탐색하는 데 도움이 됩니다.Marker()를 사용하여 포인트를 추가합니다.루프를 사용하여 레이블을 추가합니다.
최종 결과는 다음과 같습니다.
세 번째 요소인 X3이 있기 때문에 몇 개의 점과 레이블이 서로 위에 표시되어 있습니다.레이블이 서로 겹치지 않도록 이를 추가로 사용자 정의할 수 있지만 이러한 모든 레이블에도 x3 값을 추가할 수도 있습니다.기본적으로 이 솔루션은 2개 이상의 요소에 대해 잘 확장되지 않지만 2개만 있는 경우 이 방법은 정말 잘 작동합니다.