jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기안녕,
등고선 플롯이 있는데 등고선 플롯의 선을 따라 데이터가 어떻게 변하는지 살펴보고 싶습니다.
예를 들어, 등고선 플롯은 필름 두께 등고선 플롯입니다. 그리고 등고선 플롯의 아무 곳에나 그리는 선을 따라 두께가 어떻게 변하는지 보고 싶습니다.
이것이 가능한가?
요가
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기요가,
데이터 테이블에 스크립트를 추가하는 방법에는 여러 가지가 있습니다.JMP를 사용하면 이 작업이 더 쉬워질 것 같습니다. 참고로 이 스크립트에서는 스크립트를 추가하는 3가지 방법만 보여줍니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
myScript = Expr(Distribution( Column( :Height, :Weight ), By( :sex )) );
//---hard coded method below
//dt << New Script("New Script",Distribution( Column( :Height, :Weight ), By( :sex )) );
//--or use the syntax below that uses expression substitution then Eval() to run it
//Eval( Substitute(Expr( dt << New Script( "New Script", _xx ) ), Expr(_xx), NameExpr(myScript) ) );
//---or use Eval Expr() that does the substitution and Eval() that runs it
Eval( Eval Expr(dt << New Script("New Script", Expr(NameExpr( myScript) ) ) ) );
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기안녕하세요 모건,
제 예를 위해 보내주신 샘플 코드에 몇 가지 (사소한) 구문 오류가 있었습니다. 문제를 해결하는 데 시간이 좀 걸렸지만(jmp 스크립팅을 처음 접했습니다) 마침내 원하는 대로 작동했습니다. 도움을 주셔서 다시 한번 감사드립니다. 원하는 다른 사람들을 위해 아래에 수정된 스크립트를 첨부합니다.
또한 스크립트가 데이터 테이블에 저장되어 있으면 (긴) 위치 경로를 지정할 필요가 없다는 것도 깨달았습니다. 이상하게도 새 스크립트 파일을 데이터 테이블에 저장할 수 없습니다. 별도의 jsl 파일로 저장해야 합니다. 이 문제를 해결하려면 데이터 테이블에 이미 존재하는 스크립트를 열고 이를 수정하여 새 스크립트를 입력합니다.
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기안녕하세요 모건,
다시 한 번 감사드립니다. 정말 감사합니다. 그에 따라 스크립트를 수정하겠습니다.
요가
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기저는 반도체 데이터에 대한 경험이 있기 때문에 각 웨이퍼 또는 각 구조에 대해 분석하고 싶은 마음을 이해합니다.귀하의 진술에서 " 하나의 개체에 대해 작동합니다. 개체가 여러 개인 경우 그룹화하는 방법을 잘 모르겠습니다." 귀하의 파일에 웨이퍼 및/또는 구조라는 열이 있다고 가정합니다.
우선, 데이터 테이블의 이름을 dt로 지정할 필요는 없습니다. 변수 참조의 용도를 변경하지만 이러한 모든 테이블을 dt로 호출하면 더 큰 스크립트에서 혼란이 발생할 수 있습니다.구문 이후의 이름 충돌과 오타는 스크립트가 작동하지 않는 가장 흔한 원인입니다.
스크립트의 경우, 저널에 순차적으로 배치된 모든 그래프에 문제가 없다면 "그룹별"을 처리하기 위해 스크립트에 대한 제가 제안하는 수정 사항이 있습니다. 이 스크립트 아래에 더 많은 내용이 있습니다.
subp = dt << Bivariate ( Y(:Name( "Rdson" )), X(:X), By(:Wafer) );
xx = subp << Find (Outline Box ("Bivariate ?") );
//this returns all outline boxes with Bivariate in the title, should be one for each wafer
//This adds the title but maintains the By Wafer = xxxxxxx
For(i=1, i <=nitems(xx), i++,
ttl = xx[i] << get title;
p = Contains( ttl, "By"); //find the position of the word By
xx[i] << Set Title(" Rdson Contour at Y==0 " || substr(ttl, p, 100) ); //something large
);그러나 각 스캔과 함께 각 웨이퍼를 나란히 볼 수 있도록 보고서를 레이아웃할 수 있는 다른 방법도 있습니다.아래는 Big Class를 사용한 예시입니다. 스크립트를 첨부했습니다(파일 참조). 테스트 테이블이 없기 때문에 작동할 것이라고 장담할 수는 없지만 시도해 보고 싶을 수도 있습니다.
Names default to here(1);
open("$sample_data/Big Class.jmp");
nw = new window("example", lineupbox(ncol(2), Distribution(
Continuous Distribution( Column( :weight, Horizontal Layout(1) ) ),
Histograms Only,
By( :age, :sex )
)));
nw << journal window();
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기안녕하세요, 모건(그리고 모두),
내 데이터 테이블에서 작동하도록 관리했습니다. 나는 또한 항상 등고선 플롯을 통해 갈 필요가 없다는 것을 깨달았습니다. 모든 X==0인 하위 테이블을 만들고 Y를 따라 데이터를 얻을 수 있으며 그 반대의 경우도 가능합니다. 원하는 다른 좌표도 가능합니다. 제공해 주신 스크립트가 꽤 도움이 되었습니다.
이제 여러 객체에 걸쳐 이를 수행하는 방법을 알아내려고 노력 중입니다. 내 샘플 스크립트는 다음과 같습니다. 하나의 개체에 대해 작동합니다. 개체가 여러 개인 경우 그룹화하는 방법을 잘 모르겠습니다. 이에 대한 의견이 있나요? 정말 감사하겠습니다.
내 스크립트에서는 지금 한 개체에 대한 모든 데이터를 얻습니다. 그러나 다른 개체에 대해서도 동일한 작업을 반복해야 합니다. 모든 개체는 "웨이퍼" 또는 "구조"와 같은 하나의 범주에 속합니다.
이름은 기본적으로 여기(1)로 설정되어 있습니다.
dt = open("C:/Users/yoga_***/***.jmp");
dt << 위치 선택 (:Y == 0);
dt << Subset(출력 테이블("하위 집합"), 선택한 행(1), 선택한 열(0));
dt = 데이터 테이블("하위 집합");
subp = dt << 이변량 ( Y(:Name( "Rdson" )), X(:X) );
report(subp)[OutlineBox(1)] << 제목 설정( "Rdson Contour at Y==0" );
subp << 저널 창();
subp << 창 닫기();
dt = open("C:/Users/yoga_***/***.jmp");
dt << 위치 선택 (:X == 0);
dt << Subset(출력 테이블("하위 집합2"), 선택한 행(1), 선택한 열(0));
dt = 데이터 테이블("하위 집합2");
subp = dt << 이변량 ( Y(:Name( "Rdson" )), X(:Y) );
report(subp)[OutlineBox(1)] << 제목 설정( "X==0의 Rdson 윤곽선" );
subp << 저널 창();
subp << 창 닫기();
dt = open("C:/Users/yoga_***/***.jmp");
dt << 위치 선택(0.95 < :X/:Y < 1.05);
dt << Subset(출력 테이블("하위 집합3"),선택한 행(1), 선택한 열(0));
dt = 데이터 테이블("하위 집합3");
subp = dt << 이변량 ( Y(:Name( "Rdson" )), X(:X) );
report(subp)[OutlineBox(1)] << 제목 설정( "X==Y의 Rdson 윤곽선" );
subp << 저널 창();
subp << 창 닫기();
close(데이터 테이블("하위 집합"), NoSave);
close(데이터 테이블("Subset2"), NoSave);
close(데이터 테이블("Subset3"), NoSave);
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기안녕하세요 모건,
이것이 바로 내가 원하는 것입니다. 나는 보통 스크립트 없이 이 서브루틴을 수행합니다. 이 스크립트가 도움이 됩니다.
이제 이 스크립트를 현재 요구 사항에 통합하는 방법을 찾으려고 노력 중입니다.
계속해서 알려드리겠습니다.
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기안녕하세요 모건,
자세한 답변 감사드립니다. 나는 당신에게 (모두) 게시하도록 노력할 것입니다.
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기윤곽선의 단면 보기를 얻는 방법에는 여러 가지가 있습니다.그러나 다른 프로그램에서 사용할 수 있는 내장된 명령문이나 단일 명령문이 아닐 수도 있습니다.
라는 스크립트를 첨부했습니다. ContourCrossSection.jsl . JMP 샘플 데이터 Little Pond.jmp를 사용합니다. 데이터는 연못의 깊이를 나타냅니다. 윤곽선, 단일 횡단면 보기(Fit Y by X, Bivariate 사용) 및 3개 횡단면의 비교 보기(Graph Builder 사용)를 생성합니다.
JSL에 익숙하지 않다면 프로그램을 실행해 보세요. JMP12, 13, 14에서 테스트했습니다. 핵심은 등고선도 옵션에서 얻을 수 있는 옵션이다.JMP countour 도표에서 빨간색 삼각형 메뉴를 선택하고 구하다 을 선택한 다음 그리드 생성 .X 및 Y 슬라이스 수를 지정하면 xygrid가 생성됩니다.
다음은 몇 가지 다른 아이디어입니다.
- 샘플 포인트 수가 조밀하지 않은 경우 신경망 또는 기타 플랫폼을 사용하여 더 부드러운 곡선을 만드는 것을 고려하십시오. 때로는 삼각측량 기능이 꺼져 있는 경우도 있습니다. 함수를 사용하면 단면을 얻는 여러 가지 방법이 있습니다.
- 메시와 함께 윤곽 프로파일러를 사용하는 방법을 알아보세요. 그런 다음 메뉴에서 로컬 데이터 필터를 추가하고 Y 또는 X의 범위를 50 <=Y <= 50.1과 같이 설정합니다. 이것은 모두 대화형입니다. 프로파일러에는 다른 옵션이 있습니다.
- 액세스 권한이 있는 다른 프로그램에서 이를 쉽게 얻을 수 있는 경우 JSL 및 프로그램 실행을 사용하여 R, MatLab, SAS 및 JMP14에서는 Python에 액세스할 수 있습니다.
도움이 되었기를 바랍니다.
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기안녕하세요, 카메론,
아니요, 스무딩 스플라인이 아닙니다. 데이터의 하위 집합을 가져오는 구불구불한 방법을 따르지 않는 한 지금은 그것을 얻을 수 있는 방법이 없는 것 같습니다.
jmp에 해당 기능을 추가하는 것은 그리 어렵지 않을 것입니다. 이는 일반적으로 등고선 플롯을 제공하기 위해 XY에 매개변수를 매핑하는 많은 소프트웨어에 존재합니다. 그리고 우리는 윤곽선을 따라 그리는 선을 따라 그것이 어떻게 변하는지 확인할 수 있습니다.
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기아래쪽 웹 방향을 따라 특정 슬라이스에서 교차 웹 프로파일과 같은 필름의 단면을 설명하고 있습니까? 그렇다면 윤곽 프로파일러에서 이를 얻을 수 있는 방법은 없다고 생각합니다.
스무딩 스플라인처럼 해당 단면의 데이터 포인트 사이를 보간하는 선을 그려야 합니까?
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기안녕하세요, 카메론,
정확히. 등고선 플롯의 한쪽 끝에서 다른 쪽 끝으로 선을 그릴 때 매개변수 변화를 찾고 있습니다. 여기서는 가능한 최선의 방법으로 설명하겠습니다.
기판에 따라 달라지는 필름 두께의 등고선 플롯이 있습니다. 그런 다음 주어진 X(또는 Y)를 선택하고 한쪽 끝에서 다른 쪽 끝까지 선을 그릴 수 있습니다. 모든 포인트는 Y=0이고 X는 -50에서 +50까지 다양하다고 가정해 보겠습니다. -50에서 +50까지 수평선을 그립니다. 그런 다음 해당 선을 따라 두께가 어떻게 달라지는지 확인하고 측면에 플롯이 표시되는지 확인하고 싶습니다.
구불 구불 한 방식으로 이것을 할 수 있습니다. 데이터 세트를 가져옵니다. 그런 다음 Y=0인 모든 데이터 요소의 또 다른 하위 집합을 선택합니다. 그런 다음 X에 대한 두께를 플롯합니다(모든 Y=0에 대해).
어디든 선을 그을 때 배경에서 할 수 있으면 좋겠어요.
Re: jmp의 등고선 플롯에서 라인 스캔 데이터 가져오기안녕 @요가 ,
등고선 플롯 위에 데이터 포인트를 플롯하고 싶습니까?그렇다면 이 스레드를 참조하세요. https://community.jmp.com/t5/Discussions/Adding-특이적-data-points-with-labels-to-a-contour-plot/mp/52455