안녕하세요 여러분,
여기에 경험이없는 JSL 스크립터. 이것이 사소한 질문이라면 사과하지만 특정 회전 각도에 대한 산점도 3D 명령을 변수에 삽입하는 방법이 있는지 궁금합니다. JSL 스크립트. 예를 들면
sp = Scatterplot 3D(
Y( :age, :height, :weight ),
Frame3D( Set Grab Handles( 0 ), Set Rotation( -54, 0, 38 ) )
);
하지만 이미 생성 된 산점도에서 회전 값을 입력해야하는 프로세스를 자동화하려고하므로 회전 값을 코드에 수동으로 복사하여 붙여 넣지 않고도이 작업을 수행 할 수 있습니다. 최종 목표는 미리 지정된 회전 값을 입력으로 사용하고 R 스크립트 (이미 작성된)와 인터페이스하는 스크립트를 사용하여 3D 산점도에서 2D 플롯을 생성하는 것이므로 Mac 클립 보드로 작업하는 불편 함을 피할 수 있습니다. .
도움을 주시면 감사하겠습니다.
이에 대한 후속 조치로 현재 열려있는 산점도를 변수에 삽입하는 방법이 있습니까?
이 토론 질문은 이전 토론과 관련이 있거나 동일한 질문 인 것 같습니다. 3D 산점도 플롯 스크립트에서 회전 및 데이터 열 선택
이 게시물의 특정 질문에 답하기 위해 스크립트
sp = Scatterplot 3D(
Y( :age, :height, :weight ),
Frame3D( Set Grab Handles( 0 ), Set Rotation( -54, 0, 38 ) )
);
실행시 객체를 가리키는 변수를 만들어 JSL에서 액세스 할 수있는 출력 표시 객체를 생성합니다.
spr = report( sp );
//or
spr = sp << report;
"spr"은 산점도를 포함하지 않지만 산점도 및 출력 디스플레이와 관련된 다양한 개체를 포함하는 출력 디스플레이 트리 내의 최상위 개체에 대한 포인터입니다.
아래는 위에서 언급 한 토론 질문에 대해 작성한 스크립트입니다.여기에서 사용자는 Scatter Plot 3D를 실행할 수 있으며, Scatter Plot이 닫히면 디스플레이 트리로 이동하여 JMP 스크립트를 추출하여 실행하면 Scatter Plot 3D를 다시 생성 할 수 있습니다. 폐쇄되었습니다.그런 다음 스크립트는 계속해서 3 축 및 회전 값에 대한 열을 각각 varsList 및 rotationList라는 2 개의 JMP 목록으로 추출합니다.여기에서 해당 값을 원래 JMP 데이터 테이블에 새 열로 다시 추가 한 다음 데이터 테이블을 csv 파일로 저장합니다.
R에 전달하기 위해 csv 파일에서 필요한 형식이 무엇인지 알지 못하는 것은 필요한 것을 추측 한 것입니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
sp = Scatterplot 3D(
Y( :age, :height, :weight ),
Frame3D( Set Grab Handles( 0 ), Set Rotation( -54, 0, 38 ) )
);
sp << on close(
theScript = Char( (Report( sp ) << get scriptable object) << get script );
varsList = {};
Insert Into( varsList, Word( 2, Substr( theScript, Contains( theScript, "Y(" ) ), ":," ) );
Insert Into( varsList, Word( 4, Substr( theScript, Contains( theScript, "Y(" ) ), ":," ) );
Insert Into( varsList, Word( 6, Substr( theScript, Contains( theScript, "Y(" ) ), ":,)" ) );
rotationList = {};
Insert Into( rotationList, Word( 2, Substr( theScript, Contains( theScript, "Rotation(" ) ), "()," ) );
Insert Into( rotationList, Word( 3, Substr( theScript, Contains( theScript, "Rotation(" ) ), "()," ) );
Insert Into( rotationList, Word( 4, Substr( theScript, Contains( theScript, "Rotation(" ) ), "()," ) );
dtSub = dt << subset( columns( Eval( varsList ) ), selected rows( 0 ) );
dtSub << New Column( "_Vars_", character, set values( varsList ) );
dtSub << New Column( "_Rotation_", character, set values( rotationList ) );
dtSub << Save( "$TEMP/passvalues.csv" );
close( dtSub, nosave );
);
// This line opens the csv back into JMP
//open("$TEMP/passvalues.csv");
JMP의 작동 방식에 대한 참고로, 산점도를 변수에 배치 한 다음 R에 전달하거나 .csv 파일로 저장할 수 없습니다.그러나 이미지를 이미지 파일에 저장할 때 산점도의 이미지를 추출하거나 이미지를 블롭으로 전달할 수 있습니다.나는 당신이 무엇을 찾고 있는지 정확히 모릅니다.JMP에서 R을 호출하고 필요한 정보를 JMP에서 R로 직접 전달할 수있는 JMP 자동화를 살펴볼 수 있습니다.
정확히 필요한 사항에 대해 자세히 설명하여 커뮤니티로 돌아 오시면 문제 해결을 돕기 위해 노력하겠습니다.
마지막으로, JMP 문서 라이브러리의 도움말 풀다운 메뉴에서 찾을 수있는 JMP / JSL 용 스크립팅 가이드를 읽어 보시기 바랍니다.