그래프에 참조선을 표시하는 루프 만들기모두들 안녕,
1년 전부터 JMP15를 사용하고 있지만 이제 막 스크립트에 흥미를 갖기 시작했습니다.
테이블을 기반으로 그래프에 References Lines를 표시하는 스크립트를 작성하고 싶습니다.
2개의 테이블이 있습니다. 데이터(값=f(시간)을 표시하기 위해 스크립트를 실행)와 날짜, 그래프에 포함하고 싶은 참조 라인에 해당하는 날짜가 있는 열 하나가 있습니다.
그 표는 내 게시물에 첨부되어 있습니다.
다음은 테이블 날짜의 첫 번째 요소인 날짜 열을 기반으로 하나의 참조 라인을 표시하는 현재 스크립트입니다.
ref1 = dates:name( "date" )[1];
Graph Builder(
Variables( X( :time ), Y( :value ),Page(:cat) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
SendToReport( Dispatch( {}, "time", ScaleBox( 2 ), {Add Ref Line( ref1, "Dotted", "Red", "", 2 )} ) )
);"날짜" 테이블의 각 값에 대한 참조선을 자동으로 생성하는 "For" 루프를 만들고 싶습니다.
내가 시도한 것은 다음과 같습니다.
ref1 = dates:name( "date" )[1];
Graph Builder(
Variables( X( :time ), Y( :value ),Page(:cat) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
SendToReport( Dispatch( {}, "time", ScaleBox( 2 ),
{
For( i = 1, i <= N row( dates), i++,
f = dates [ i ];
Add Ref Line( f, "Dotted", "Blue", "", 2 )
);
})
);그러나 스크립트를 실행할 때 참조선이 나타나지 않습니다.
이 문제를 어떻게 해결할 수 있습니까?
마지막 질문 : 그래프 변수에 "Page(:cat)"를 추가하지 않으면 참조선이 나타나지 않습니다...
도와주셔서 감사합니다!!
제도법스크립팅Re: 그래프에 참조선을 표시하는 루프 생성토론 커뮤니티에 오신 것을 환영합니다!
다음은 참조선을 추가하는 한 가지 방법입니다.

디스플레이 트리를 사용하여 JMP 출력을 조작하는 방법에 대한 문서는 스크립팅 인덱스에서 찾을 수 있습니다.
Names Default To Here( 1 );
dt = Data Table( "data" );
dates = Data Table( "dates" );
ref1 = dates:name( "date" )[1];
gb = Graph Builder(
Variables( X( :time ), Y( :value ), Page( :cat ) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
SendToReport(
Dispatch( {}, "time", ScaleBox( 2 ), {Add Ref Line( ref1, "Dotted", "Red", "", 2 )} )
)
);
// Add reference lines
For( i = 1, i <= N Rows( dates ), i++,
// Add for Cat = B
(Report( gb )[axisbox( 1 )]) << add ref line( dates:date[i], "Dotted", "Blue", "", 2 );
// Add for Cat = C
(Report( gb )[axisbox( 3 )]) << add ref line( dates:date[i], "Dotted", "Blue", "", 2 );
);
Re: 그래프에 참조선을 표시하는 루프 생성Jim에게 빠른 답장을 보내주셔서 감사합니다. 정말 도움이 됩니다!
Re: 그래프에 참조선을 표시하는 루프 생성다음은 디스플레이 트리를 사용하지 않는 솔루션입니다.
Names Default To Here( 1 );
dt = Data Table( "data" );
dts = Data Table( "dates" );
// Get the unique values of cat
summarize(cat_unique = by(dt:cat));
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :time ), Y( :value ), Page( :cat ) ),
Elements( Points( X, Y, Legend( 4 ), Summary Statistic( "Mean" ) ) ),
);
// Add reference lines
for (c = 1, c <= nitems(cat_unique), c++,
scbox = c + 1;
for (i = 1, i <= nrows(dts), i++,
ref = dts:date[i];
gb << SendToReport(
Dispatch( {}, "time", ScaleBox( scbox ), {Add Ref Line( ref, "Dotted", "Red", "", 2 )} )
);
);
);