JSL을 사용하여 그래픽 요소의 그리기 순서 변경<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕 모두,
그래프를 마우스 오른쪽 버튼으로 클릭한 다음 사용자 지정을 클릭하고 위/아래 화살표를 사용하여 그래픽 스크립트의 순서를 이동하여 그래픽 요소의 그리기 순서를 변경할 수 있다는 것을 알고 있습니다. JSL을 사용하여 이를 수행하는 방법이 있습니까? 그리드 선과 기준선의 순서를 변경하기 위해 프레임박스에 보낼 수 있는 메시지가 있습니다. 마커에 대해서도 비슷한 것이 있기를 바랐습니다. 또한 적합선 등과 같은 것의 투명도를 변경할 수 있습니다. 감사합니다!
Re: JSL을 사용하여 그래픽 요소의 그리기 순서를 변경합니다.JMP 14.2를 사용하면 사용자 정의 그래프 옵션이 "Window" 및 "Frame Box" 변수 값과 함께 jsl 명령과 함께 작동하므로 이 예에서는 임의적입니다.
Window(6)[Frame Box( 1 )] << Dispatch( {}, "Oneway Plot", FrameBox, {Grid Line Order( 3 )})
이 트릭을 수행하여 이변량, 가변성 플롯 및 등고선 플롯 플랫폼에 대한 마커 위에 그리드 선을 표시할 수 있지만 Oneway 플랫폼에서는 값이 3 이상으로 작동하지 않습니다. Marker는 기본적으로 5번째 위치에 있으므로 그리드 선 순서는 그 이후여야 합니다. Grid Line Order( 2 ) 또는 Grid Line Order( 3 )를 사용한 위의 명령은 잘 작동하지만 Grid Line Order( 4 ) 또는 Grid Line Order( 5 )를 사용하면 아무 일도 일어나지 않습니다. 나는 이것이 버그라고 생각합니다.
점을 찍고 클릭하여 격자선 순서를 5로 강제 설정한 다음 스크립트를 스크립트 창에 저장하면 "격자선 순서( 5 ), 참조선 순서( 1 )"가 표시되지만 스크립트 창은 격자선을 5번째 위치에 두지도 않습니다.
의 의견을 반영하겠습니다. @nkelleh : " 불행하게도 '마커 순서' 메시지가 프레임 상자에 대한 '참조선 순서' 및 '격자선' 순서 메시지와 함께 포함되지 않았습니다." JMP에서 데이터 테이블의 열 또는 행을 정렬하는 방식인 '이후/이전' 또는 '마지막/첫 번째'와 같은 옵션을 허용하는 것도 여기에서 도움이 될 것입니다.
Re: JSL을 사용하여 그래픽 요소의 그리기 순서를 변경합니다.사실 그것도 효과가 있습니다. 왜 시도할 생각을 못 했는지 모르겠다. 건배.
Re: JSL을 사용하여 그래픽 요소의 그리기 순서를 변경합니다.markerseg를 삭제한 후 프레임에 다시 추가해 보셨습니까?
- markerSeg1 = bivFrame << 세그먼트 찾기( 마커 세그먼트( 1 ) );
- markerSeg1 << 삭제;
- bivFrame << appendseg(markerSeg1);
그것은 그리기 순서에서 마지막으로 만들어야 합니다.삭제하면 트리에서 제거되므로 다시 추가해도 안전합니다.
Re: JSL을 사용하여 그래픽 요소의 그리기 순서를 변경합니다.아 글쎄, 만약을 대비해서 물어봐야 했어!
해결 방법 덕분에 기존 마커를 삭제하고 연결한 스레드가 제안한 대로 다시 그려 원하는 결과를 얻을 수 있었습니다. 데이터 포인트 선택 측면에서 플랫폼 상호작용성을 잃게 되지만, 순전히 데이터 시각화 목적이었기 때문에 괜찮았습니다.
다시 한번 감사드립니다.
아래는 마커를 삭제하고 다시 그리는 데 재사용한 코드 세그먼트입니다.
//Delete Markers if requiredmarkerSeg1 = bivFrame << Find Seg( Marker Seg(1) );markerSeg1 << Delete;//Script to redraw markers on topbivFrame << Add Graphics Script( For(r=1, r <= NRows(dtMain), r++, y = Column( dtMain, "Voltage" ); x = Column( dtMain, "Temp" ); ms = Combine States( Marker State( Marker Of( Row State( r ) ) ), Color State( Color Of( Row State( r ) ) ) ); Marker(ms, {x, y}); ); );Re: JSL을 사용하여 그래픽 요소의 그리기 순서를 변경합니다.죄송합니다 - 이제 알겠습니다.
누군가 내 잘못을 증명해주기를 바라며 불행히도 당신이 '운이 없었다'고 말할 것입니다. 프로그래밍 방식으로 위쪽/아래쪽 화살표를 돌리는 것과 적합선의 투명도 측면에서 둘 다.
반드시 권장되는 것은 아니지만 마커를 앞으로 가져오려면 다음과 같은 변형을 사용하여 그래픽 스크립트로 마커를 다시 그리는 것을 고려할 수 있습니다. https://community.jmp.com/thread/65641
Re: JSL을 사용하여 그래픽 요소의 그리기 순서를 변경합니다.안녕 이안,
다시 한 번 유용한 팁 감사합니다. 여기서는 다른 그래픽 요소(이 경우 맞춤 스플라인)를 유지하고 싶지만 마커를 플롯 앞에 가져오고 싶습니다. 원래 게시물에 설명된 방법을 사용하여 이 작업을 수동으로 수행할 수 있습니다. 프로그래밍 방식으로 수행할 수 있는 방법이 있는지 궁금합니다. 불행하게도 '마커 순서' 메시지는 프레임 상자에 대한 '참조선 순서' 및 '격자선' 순서 메시지와 함께 포함되지 않았습니다.
그래픽 스크립트를 사용하여 그린 개체의 투명도를 쉽게 변경할 수 있습니다. 또 다른 메모에서 Bi-variate 플랫폼에서 적합선의 투명도를 변경하는 방법이 있는지 궁금합니다.
모든 도움에 다시 한 번 감사드립니다.
Re: JSL을 사용하여 그래픽 요소의 그리기 순서를 변경합니다.참고로, 이런 종류의 작업을 수행할 수 있습니다(그래서 그리드 및 참조선의 순서를 변경하는 기능을 사용하면 원하는 것을 얻을 수 있습니다).
여기에 기본 이름 ( 1 ) ;
열려 있는 ( "$SAMPLE_DATA/빅 클래스.jmp" ) ;
비브 = 이변량 ( 와이 ( : 무게 ) , 엑스 ( : 키 ) , 핏라인 ) ;
르비브 = 비브 << 보고서 ;
프레임박스 = 르비브 [ 프레임 상자 ( 1 )] ;
기다리다 ( 1 ) ;
프레임박스 <<
그래픽 스크립트 추가 (
1 ,
설명 ( "주황색 다각형" ) ,
투명도 ( 0.5 ) ;
채우기 색상 ( { 1.0 , 0.5 , 0.0 } ) ;
다각형 ( [ 60 , 72 , 57 ] , [ 75 , 120 , 120 ] ) ;
) ;
기다리다 ( 1 ) ;
프레임박스 <<
그래픽 스크립트 추가 (
2 ,
설명 ( "블루 폴리곤" ) ,
투명도 ( 0.5 ) ;
채우기 색상 ( { 0.0 , 0.5 , 1.0 } ) ;
다각형 ( [ 60 , 72 , 57 ] , [ 150 , 120 , 120 ] ) ;
) ;
기다리다 ( 1 ) ;
프레임박스 << 그래픽 스크립트 제거 ( 1 ) ;
// 첫 번째 그래픽 스크립트를 제거한 후 두 번째는 이제 위치 1에 있습니다(원래 위치 2에 할당되었음에도 불구하고). . .
기다리다 ( 1 ) ;
프레임박스 << 그래픽 스크립트 제거 ( 1 ) ;
또한 다음을 참조하십시오. https://www.jmp.com/support/help/Adding_Scripts_to_Graphs.shtml