기준선친애하는 커뮤니티 여러분,
다중 분포 차트에 다른 참조선을 추가하는 데 사용할 수 있는 스크립트가 있습니까? 4000개의 히스토그램이 있고 각 히스토그램마다 참조 값이 다릅니다.
귀하의 도움에 정말 감사드립니다.
감사해요답: 기준선빠른 답변 감사합니다.
답: 기준선모든 플랫폼 디스플레이에는 트리 구조가 있어 JSL이 특정 객체를 가리키고 해당 객체에 메시지를 전달할 수 있습니다.출력 디스플레이의 회색 삼각형 중 하나로 이동하여 마우스 오른쪽 버튼을 클릭하고 "트리 구조 표시"를 선택하면 개체가 표시됩니다.각 개체에 대한 오프셋을 선택하여 참조할 수 있습니다.그만큼
rbiv<SPAN class="token punctuation">[</SPAN><SPAN class="token function">j</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN>
디스플레이의 AxisBox()를 가리키는 오프셋입니다.이 코딩은 매우 비밀스럽습니다.다음 코드를 살펴보면 5개의 히스토그램 출력을 각각 처리하고 각 디스플레이에서 첫 번째 축 box()를 찾아 참조선 추가에 메시지를 전달하는 작업을 수행하고 있음을 알 수 있을 것입니다. .cryptic 표기법과 동일하지만, 수정하려는 객체에 이름으로 분기하는 형태입니다.
//Open datatable and make report
dt = Open( "$SAMPLE_DATA/Michelson.jmp" );
Biv = dt << Distribution(
Continuous Distribution( Column( :Velocity ) ),
By( :Trial# )
);
rbiv = Biv << Report();
// Here is created a list of all by-groups and a matrix with
//means of each group to be used as a refline.
//A custom list can be used instead using the same approach
Summarize(
groups = by( :Trial# ),
reflines = Mean( :Velocity )
);
n = N Items( groups );
//Add reference lines
For( j = 1, j <= n, j++,
//rbiv[j][1][1][1][1][1][1][1][1] <<
rbiv[j][AxisBox(1)]<<
add ref line( reflines[j], solid, "Red" )
);
답: 기준선다음 코드 줄은 무엇을 의미합니까?[1]이 몇 개 필요한지 어떻게 알 수 있나요?제가 묻는 이유는 참조선 함수 속성의 변수를 사용하여 참조선을 추가할 수 있기를 원하기 때문입니다.
rbiv<SPAN class="token punctuation">[</SPAN><SPAN class="token function">j</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN><SPAN class="token punctuation">[</SPAN><SPAN class="token number">1</SPAN><SPAN class="token punctuation">]</SPAN>
답: 기준선<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />비슷한 문제가 있습니다. by 문을 사용하여 서로 다른 ID에 대해 35개의 서로 다른 차트를 그리는 proc gplot이 있습니다. 각 플롯에 서로 다른 수평 기준선을 지정할 수 있는 방법이 있습니까? 그리고 해당 참조선의 값을 선의 위쪽이나 아래쪽에 표시할 수도 있나요?
감사해요
기준선"Verlauf ETA A6"이 일종의 개체에 대한 것인지 잘 모르겠습니다. 그래프 빌더 개체의 이름이면 작동하지만 데이터 테이블의 이름이면 작동하지 않습니다. 그래프 빌더 창에 변수를 할당하는 것이 더 쉽다고 생각합니다(위와 같이).
그 외에도 작동해야합니다. 귀하의 구문을 사용하여 별도의 테이블에서 기준선을 검색하도록 스크립트를 변경했는데 작동했습니다.
또한 올바른 테이블이 "현재 데이터 테이블"인지 확인해야 할 수도 있다고 생각합니다.
답: 기준선도움이 되었지만 여전히 오류가 발생했습니다.
나는 2개의 다른 테이블을 가지고 있습니다. 하나는 그래프에 사용하는 테이블입니다. 두 번째에는 날짜(보고서 "Verlauf Eta A6")와 참조 라인의 레이블(데이터 테이블 "")이 있습니다. 형식을 이미 다음으로 변경했습니다. jmp 긴 날짜 번호:
for(i=1,i<=nrows(data Table ("Ereignisse")),i++, report("Verlauf ETA A6")[Axis Box(1)] << add ref line (column(data Table ("Ereignisse"),"Datum"),Solid, "Purple", column(data Table ("Ereignisse"),"Bezeichnung") ));
하지만 로그는 다음을 반환합니다(별로 도움이 되지 않음).
In the following script, error marked by /*###*/ For( ::i = 1, ::i <= N Rows( Data Table( "Ereignisse" ) ), ::i++, Report( "Verlauf ETA A6" )[Axis Box( 1 )] << /*###*/ add ref line( Column( Data Table( "Ereignisse" ), "Datum" )[::i], Solid, "Purple", Column( Data Table( "Ereignisse" ), "Bezeichnung" )[::i] ) /*###*/ )
기준선이상한 숫자는 날짜/시간 값에 대한 JMP 내부 표현입니다(실제로는 참조 날짜 이후의 초 수를 계속 잊어버립니다...).
VLine()에는 선택적 레이블 인수가 없는 것 같습니다. 그러나 for 루프에서 Add ref line()을 사용하여 수직선으로 그래프를 채울 수 있습니다. Summarize()를 사용하여 데이터 테이블에서 레이블과 날짜의 목록과 행렬을 가져옵니다. 아래 예제 스크립트를 참조하세요.
// Make example table
dt=New Table( "Test",
Add Rows( 6 ),
New Column( "Group",Nominal, Character, Set Values(
{"Group A", "Group A", "Group A", "Group B", "Group B", "Group B"})),
New Column( "Data", Numeric,
Set Values( [1, 2, 3, 2, 3, 4] )),
New Column( "Date", Numeric,
Format( "d-m-y", 12 ),
Set Values([3166214400, 3166300800, 3166387200, 3166214400, 3166300800, 3166387200])),
New Column( "Label",Nominal,Character,
Set Values( {"A", "B", "C", "A", "B", "C"} )));
// Make list of dates and labels
Summarize(dlist=by(:Date),dlist=mean(:Date));
Summarize(llist=by(:Label));
// Make graph
gb=Graph Builder(
Variables( X( :Date ), Y( :Data ), Overlay( :Group ) ),
Elements( Points( X, Y, Legend( 1 ) ) ));
//Add vertical reflines based on dates in Column date
for(i=1,i<=nrows(dlist),i++,
report(gb)[Axis Box(1)] << add ref line (dlist[i],Solid, "Purple", llist[i] ));
이게 도움이 되길 바란다.
답: 기준선안녕하세요,
비슷한 문제가 있습니다. 그래프가 있고 x축에 날짜(예: dmy)가 있고 a축에 여러 개의 수직 참조선이 필요합니다. 오늘은 v라인이 포함된 스크립트를 사용했는데 거기에 라인이 있지만 라벨이 없습니다.
참조 라인의 날짜와 레이블은 데이터 테이블(열 날짜(형식 dmy), 열 레이블)에 저장됩니다. 그러나 수동 기준선은 날짜 대신 33962554400과 같은 숫자를 사용합니다(그리고 이것이 날짜라는 것을 알고 있습니다...).
Graph Builder( Size( 696, 688 ), Show Control Panel( 0 ), Variables( X( :BL, Size( 212 ) ), Y( :Name( "x" ) ), Group Y( :Name( "s_-x" ) ), Overlay( :Projektklasse_plus ) ), Elements( Points( X, Y, Legend( 6 ) ) ), SendToReport( Dispatch( {}, "BL-date", ScaleBox, {Format( "d.m.y", 10 ), Interval( "Day" ), Inc( 1 ), Add Ref Line( 3396254400, Solid, {255, 0, 0}, "Label ref line 1" ) , Rotated Labels( 1 )} ), Dispatch(.......
내 vline 스크립트는 다음과 같았습니다.
OPR[FrameBox(1)] << add graphics script (pen color("purple"); vline(column(data Table ("CHCharge$"),"CuI") << get values));
하지만 실제로는 다른 날짜에 레이블이 있는 정말 다른 참조 라인을 원하고 참조 라인의 날짜가 포함된 데이터 테이블은 일년 내내 점점 더 많은 날짜를 얻고 있습니다...
그렇다면 데이터 테이블을 사용하는 방법에 대한 답변을 명확히 해주실 수 있습니까?
미리 감사드립니다.
답: 기준선안녕 MS,
감사해요. 효과가있다.
당신에게 더 많은 힘을답: 기준선다음은 모든 히스토그램이 동일한 창 내에 있다고 가정하는 샘플 스크립트입니다. 여기서 개별 참조 라인은 단순히 그룹 평균이지만 스크립트는 사용자 정의 행렬이나 값 목록(예: 테이블에서 검색)에 쉽게 적용할 수 있습니다.
//Open datatable and make report
dt = Open( "$SAMPLE_DATA/Michelson.jmp" );
Biv = dt << Distribution(
Continuous Distribution( Column( :Velocity ) ),
By( :Trial# )
);
rbiv = Biv << Report();
// Here is created a list of all by-groups and a matrix with
//means of each group to be used as a refline.
//A custom list can be used instead using the same approach
Summarize(
groups = by( :Trial# ),
reflines = Mean( :Velocity )
);
n = N Items( groups );
//Add reference lines
For( j = 1, j <= n, j++,
rbiv[j][1][1][1][1][1][1][1][1] <<
add ref line( reflines[j], solid, "Red" )
);