이변량 플랫폼을 사용하여 불연속 시간 단위(예: 2021년 첫째 주에 대한 202101)에 대한 데이터 플롯을 생성하는 스크립트가 있습니다. 사용된 시간 단위는 협상할 수 없으며 연속으로 취급되는 경우 간격이 정확하지 않습니다. 내 솔루션은 값이 1,2,3,...인 "시퀀스" 열을 만들고 202052, 202101, 202102, ....와 쌍을 이루고 값 레이블을 "시퀀스" 열에 적용하는 것이었습니다(1에는 값이 있음). 레이블 202052, 2는 값 레이블 202101, 3은 값 레이블 202102를 가짐) 그런 다음 "Sequence" 열을 X에 의한 Fit Y의 X로 사용합니다. 이 솔루션은 출력을 저널링할 때를 제외하고는 아름답게 작동합니다. 값 레이블이 유지되지 않고 저널의 플롯이 값 레이블을 사용하는 대신 Sequence 열의 원래 값으로 되돌아갑니다. 때때로 값 레이블이 저널로 전송되지만 저장하고 다시 열면 x축 값이 원래 값으로 되돌아갑니다. 차이점은 저널(값 레이블이 임시로 보존됨)과 복사 --> 저널에 붙여넣기(값 레이블이 보존되지 않음)에 스크립트 또는 ctrl + J를 사용하는 것이라고 생각합니다.
이 작업을 수행하는 다른 방법을 찾을 수 있거나 누군가 다른 방법을 제안할 수 있지만 값 레이블이 보고서 창에서 저널로 전송되지 않는 것이 의도된 JMP 동작인지 여부에 더 관심이 있습니다. 향후 버전의 JMP에서 이 동작이 변경될 수 있습니까?
JMP Pro 14.3.0을 사용하고 있습니다. JMP Pro 15.2.1에서도 이 문제가 발생하는 것을 확인했습니다. 다음은 문제를 재현하는 예제 스크립트입니다.
// Data Table
dt = New Table( "Label Example",
Add Rows( 6 ),
New Column( "Week", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [202052, 202052, 202101, 202101, 202102, 202102] ) ),
New Column( "Sequence", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 1, 2, 2, 3, 3] ) ),
New Column( "Value", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [12, 39, 9, 1, 22, 9] ) ),
New Column( "Group", Character, "Nominal", Set Values( {"A", "B", "A", "B", "A", "B"} ) )
);
week_list = :Week << get values;
sequence_list = :Sequence << get values;
week_list_names = {};
// Build the Value Labels List
For( i = 1, i <= N Items( week_list ), i++,
If( !Contains( week_list_names, Parse( "\!"" || Char( sequence_list[i] ) || "\!" = \!"" || Char( week_list[i] ) || "\!"" ) ),
Insert Into( week_list_names, Parse( "\!"" || Char( sequence_list[i] ) || "\!" = \!"" || Char( week_list[i] ) || "\!"" ) )
)
);
:Sequence << Data Type( Character );
:Sequence << Value Labels( week_list_names );
:Sequence << Data Type( Numeric ) << Modeling Type( Continuous );
value_by_week = Bivariate(
Y( :Value ),
X( :Sequence ),
Fit Where( :Group == "A", Fit Each Value( {Line Color( {212, 73, 88} )} ) ),
Fit Where( :Group == "B", Fit Each Value( {Line Color( {66, 112, 221} )} ) ),
SendToReport(
Dispatch( {}, "Bivariate Fit of Value By Sequence", OutlineBox, {Set Title( "Bivariate Fit of Value By Sequence" )} ),
Dispatch( {}, "1", ScaleBox, {Inc( 1 ), Minor Ticks( 0 ), Label Row( Show Major Grid( 1 ) ), Label Row( Label Orientation( "Angled" ) )} ),
Dispatch( {}, "2", ScaleBox, {Inc( 10 ), Minor Ticks( 5 ), Label Row( Show Major Grid( 1 ) )} ),
Dispatch( {}, "Sequence", TextEditBox, {Set Text( "Week" )} )
)
);
value_by_week_rep = value_by_week << Report;
my_jrn = New Window( "Test Journal", <<JOURNAL></JOURNAL>x 열에서 연도 및 주 값을 추출하여 타임스탬프로 변환하도록 선택할 수 있습니다. 그런 다음 x축에 던지면 자동으로 정확한 간격을 두고 x축의 형식을 가지고 놀면 원하는 대로 날짜를 표시할 수 있습니다.
흥미로운! 나는 그것을 시도하지 않을 것이라고 생각했지만 "새 창에서 다시 실행"도 저에게 효과적입니다. JMP 16에서 문제가 해결되어 기쁩니다. 설치를 시작할 때까지 허용되는 해결 방법입니다. 공유해 주셔서 감사합니다.
JMP 15.2에서 귀하의 오류를 복제했습니다.JMP 16에서 수정된 것으로 보입니다.
안녕 @drew_baumgartel ,
예제 스크립트를 사용할 때도 동일한 동작이 나타납니다.
하지만 빨간색 삼각형으로 이동하여 새 창에서 다시 실행을 선택하면 값 레이블을 볼 수 있었습니다.
Rerun in new windowRerun in new window새 창에서 다시 실행
results after rerunning in new windowresults after rerunning in new window 새 창에서 다시 실행한 후 결과
건배,
스탠