그래프에 선과 화살표를 그리는 데 문제가 있습니다.JSL로 그래프에 선과 화살표를 그리는 방법을 알아내기 위해 몇 가지 실험을 하고 있습니다. 스크립팅 가이드에는 도움이 되는 내용이 많지 않았고, 커뮤니티에 이전에 게시된 내용도 없었습니다. 아래에 제 JSL 스크립트와 데이터 테이블을 업로드했습니다.
데이터 표에서 5도 간격으로 단위 원의 좌표를 계산했습니다. 그래프 빌더를 사용하여 그래프를 그렸습니다.

처음에는 원점에서 각 지점까지 화살표를 그리는 스크립트를 만들고 싶습니다. 제가 사용하는 스크립트는 다음과 같습니다. 실행해도 오류는 발생하지 않지만 화살표가 그려지지 않습니다. 여기에 표시된 것처럼 FOR 루프를 Graph Builder 블록 안에도 넣고, 블록 밖에도 넣어 보았습니다. 두 가지 모두 작동하지 않는 것 같습니다.
Names Default To Here (1);
dt = "Circle Arrow Data";
Graph Builder(
Size( 540, 540 ),
Graph Spacing( 10 ),
Spacing Borders( 1 ),
Variables( X( :x coord ), Y( :y coord ) ),
Elements( Points( X, Y, Legend( 3 ) ) ),
For( i=0, i<360, i+=5,
Arrow( {0,:x coord[i]}, {0, :y coord[i]})
)
);
궁극적으로 제 목표는 행을 하나 이상 선택했을 때만 화살표가 나타나도록 하는 것이지만, 당연히 먼저 이 기능을 제대로 구현해야 합니다. 이 기능은 그래프에 풍향을 표시하는 기능이지만, 그래프에 그리는 방법을 조금씩 익혀가고 있습니다.
제공된 모든 지침에 미리 감사드립니다.
자동화 및 스크립팅Re: 그래프에 선과 화살표를 그리는 데 문제가 있습니다.타이밍이 참 좋네요 : )
JMP19의 새로운 기능:
벡터 필드 차트가 지난 슈퍼볼의 성과를 설명하는 데 도움이 될 수 있을까?

New Column( "x_0", Formula( 0 ));
New Column( "y_0", Formula( 0 ));
Graph Builder(
Variables( X( :x_0 ), X( :x coord, Position( 1 ) ), Y( :x_0 ), Y( :y coord, Position( 1 ) ) ),
Elements(
Line(
X( 1 ), X( 2 ),
Y( 1 ), Y( 2 ),
Ordering( "Within Row" ),
Connection( "Arrow" )
)
)
);
Re: 그래프에 선과 화살표를 그리는 데 문제가 있습니다.안녕하세요 @hogi, 스크립트 감사합니다. 정말 잘 작동하네요.
저는 이해하려고 노력하고 있어요... 그래서 몇 가지 질문이 있어요.
1) Position 매개변수는 무슨 역할을 하나요?
2) X와 Y 인수에서 1과 2는 어디에서 왔습니까?
3) 정렬("행 내")은 무엇을 하나요?
스크립팅 도움말과 스크립팅 인덱스에는 이러한 기능에 대한 설명서가 매우 불완전한 것 같습니다.
다시 한번 감사드립니다.
Re: 그래프에 선과 화살표를 그리는 데 문제가 있습니다.동의합니다. 스크립팅 인덱스는 Mathematica나 Matlab과 같은 다른 프로그램의 인덱스나 Python 및 C++에 대한 방대한 온라인 설명서만큼 좋지 않습니다. 상황을 개선하기 위한 몇 가지 활동이 있습니다. 포괄적인 스크립팅 인덱스
반면에, 직접 해보면서 배울 수 있는 것들이 많습니다. Graph Builder를 열고 드래그 앤 드롭 기능을 사용하여 그래프를 만드세요. 몇 초밖에 걸리지 않고, 플롯을 최적화하는 데도 몇 초가 더 걸립니다. 그런 다음 "스크립트를 데이터 테이블에 저장"하고 코드에서 찾은 내용과 작업한 내용을 비교해 보세요.
- 행 순서는 JMP19의 새로운 기능입니다. X와 Y에 좌표 집합을 사용할 때 사용할 수 있습니다.
그리고 이 경우의 새로운 기본 옵션입니다.
[주의: 옵션을 활성화해도 그래프는 변경되지 않습니다]
- let's drag the coordinates into the plot, first x_0 and y_0
Variables( X( :x_0 ), Y( :y_0 ) ),
- then x_coord / y_coord
Variables( X( :x_0 ), X( :x coord, Position( 1 ) ), Y( :x_0 ), Y( :y coord, Position( 1 ) ) )
- now, we just have to activate the line plot. By default, it uses all available coordinated:
엑스(1) is x_0
엑스(2) is x_좌표
Elements(
Line(
X( 1 ), X( 2 ),
Y( 1 ), Y( 2 ),
)
)
we can also deactivate variables via:
그러면 코드는 다음과 같이 줄어듭니다.
Elements(
Line( X( 1 ), Y( 1 ),
여러 좌표를 연결하는 선과 화살표가 있는 플롯: JMP19에서 크게 개선되었습니다.
여러 좌표를 연결하는 선과 화살표가 있는 플롯입니다. JMP19에서 크게 개선되었습니다!
화살표 대신 같은 플롯 안에 세 개의 좌표(점) 집합을 표시한다고 상상해 보세요. 그런 다음 그래프에 세 개의 점 플롯을 추가하고 '다른' 좌표를 세 번 비활성화해야 합니다. 작동은 하지만 번거롭습니다!

좌표 10개를 표시하고 싶다고 상상해보세요!
논리적으로 다음 단계는 새로운 '행 내' 기능을 포인트 플롯으로 복사하는 것입니다.
열을 쌓지 않고도 "쌍"으로 표시된 여러 x 및 y 데이터 세트
이 기능이 곧 구현되기를 바랍니다!
Re: 그래프에 선과 화살표를 그리는 데 문제가 있습니다.그럼 X와 Y 함수의 1번과 2번 인수는 변수 함수에 나열된 순서대로 배열되는 건가요? 제가 제대로 이해하고 있는 건가요?
그러면 Variables 함수에서 Position(1)은 무슨 역할을 할까요? 이렇게 하면 :x 좌표와 y: 좌표가 x_0 y_0이 아닌 1이 되는 것 같습니다.
죄송합니다. 좀 헷갈리네요.
Re: 그래프에 선과 화살표를 그리는 데 문제가 있습니다.아... 그래서 position(1)을 꺼내서 스크립트를 실행해 봤습니다. 결과는 이렇습니다...

따라서 변수를 추가하는 방식에 따라 네 개의 개별 그래프가 생성됩니다. 위치 명령은 표시할 그래프를 선택합니다.
제 생각엔 맞는 것 같아요...
이걸 좀 더 연습해 볼게요. 언젠가 훌륭한 튜토리얼 영상이 될 것 같아요.
이 일에 대한 여러분의 도움에 감사드립니다
Re: 그래프에 선과 화살표를 그리는 데 문제가 있습니다.
약속한 대로, 스크립트를 "실제로 실행하면서" 배우는 건 정말 쉽습니다!
게다가 이런 식으로 학습하면 학습 내용이 훨씬 더 잘 기억될 가능성이 높습니다.:)
Re: 그래프에 선과 화살표를 그리는 데 문제가 있습니다.네, 동의합니다. 하지만 가끔은 무슨 일이 일어나고 있는지 이해하기 어려울 때가 있습니다.
예를 들어, 그래프의 다른 사분면을 보여줄 거라고 생각해서 Position(1)을 Position(2)로 바꿨습니다. 하지만... 아무런 변화가 없었습니다. 따라서 Position(1)의 1은 부울 값일 가능성이 높습니다.
온라인이나 스크립팅 색인, 온라인 도움말 어디에서도 이 문제에 대한 내용을 찾을 수 없습니다. 제가 잘못된 곳에서 찾고 있는 것일 수도 있겠네요.
어쨌든 다시 한번 감사드립니다.
Re: 그래프에 선과 화살표를 그리는 데 문제가 있습니다.코드를 작성하고 그것이 어떻게 작동하는지 확인하는 대신에 ...
반대의 접근 방식을 시도해 보세요.
Graph Builder에서 복잡한 플롯을 만든 후 코드를 검사하고 결론을 도출하세요.
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
Variables(
X( :height ),
Y( :name ),
Y( :weight ),
Y( :height, Position( 2 ) ),
Y( :age ),
Overlay( :sex )
),
Elements( Position( 1, 1 ), Points( X, Y ) ),
Elements(
Position( 1, 2 ),
Points( X, Y( 1 ), Y( 2 ), Legend( 1 ) ),
Smoother( X, Y( 1 ), Y( 2 ), Legend( 2 ) )
),
Elements( Position( 1, 3 ), Points( X, Y ) )
);
항목이 2개뿐이라면 두 번째 항목을 추가하는 것과 두 번째 항목을 second로 추가하는 것에 차이가 없습니다.
Position(2)는 항목이 세 개 이상인 경우에 적합합니다. 기본적으로 세 번째 항목은 세 번째 항목으로 추가됩니다. 다른 작업을 수행하려면 position(2)에 추가할 수 있습니다.