안녕하세요,
다른 그래프 조건 (오버레이 여부, 줄 바꿈 유무 등)을 처리하기 위해 일반 그래프 빌더 함수를 작성하려고합니다. 다음 스크립트는 세 가지 경우에 사용할 수 있지만 더 부드럽습니다 (확실하지 않은 경우). 선형 또는 곡선 맞춤)은 첫 번째 및 두 번째 그래프에서는 켜지고 세 번째 그래프에서는 켜지지 않습니다.
나는 내 대본에서 더 부드러운 (들)을 켜기 위해 무엇인가하고 있다고 생각하지 않는다. 내 질문은 어떻게 스크립팅을 통해 더 부드러운 (들)을 해제합니까?
감사,
계산서
Clear Globals();
Names Default To Here( 1 );
//Open the file
myFile = Pick File( "Choose File" );
dtIn = Open( myFile );
//Extract Serial number
for(i=1, i<=nrow(dtIn), i++,
dtIn:SERIAL_NUMBER[i] = regex(dtIn:SERIAL_NUMBER[i], "\w{8}");
);
dtIn:PE_COUNTS_DIE_LOGICAL_DIE_INDEX << set modeling type("Nominal");
DoGraph = function({dt, xCol, yCols, wrapCol, overlayCol},
{default local},
current data table(dt);
myExpr = expr(Graph Builder(
Size( 528, 490 ),
Show Control Panel( 0 ),
)
);
varExpr = expr(Variables());
elementExpr = expr(Elements());
pointsExpr = expr(Points( X ));
xExpr = expr(X(as column(expr(xCol))));
insert into(varExpr, name expr(xExpr), 1);
if( is string(yCols),
yExpr = expr(Y(:expr(yCols)));
insert into(varExpr, name expr(yExpr), 2);
nextIndex = 3;
,
is list(yCols),
nYCols = n items(yCols);
for(i=1, i<=nYCols, i++,
yStr = yCols[i];
yExpr = expr(Y(as column(expr(yStr)), Position( 1 )));
yExpr1 = eval expr(yExpr);
insert into(varExpr, name expr(yExpr1), i+1);
yPointExpr = expr(Y(expr(i)));
yPointExpr1 = eval expr(yPointExpr);
insert into(pointsExpr, name expr(yPointExpr1), i+1);
);
insert into(elementExpr, name expr(pointsExpr));
nextIndex = nYCols + 2;
,
Throw("Y must be string or list of strings");
);
if(length(wrapCol),
wrapExpr = expr(Wrap(:expr(wrapCol)));
insert into(varExpr, name expr(wrapExpr), nextIndex);
nextIndex++;
);
if(length(overlayCol),
overlayExpr = expr(Overlay(:expr(overlayCol)));
insert into(varExpr, name expr(overlayExpr), nextIndex);
nextIndex++;
);
insert into(myExpr, name expr(varExpr), 3);
insert into(myExpr, name expr(elementExpr), 4);
myExpr1 = expr(eval expr(myExpr));
eval(myExpr1);
);
xCol = "DRIVE_LEVEL_DATA_PE_AVE_DL_AVE";
yCol = "DIE_AGE_DIE_AGE";
hpList = {
"DRIVE_VITALS_AGE_SBS_THAT_PERFORMED_AGE_MEASUREMENT",
"DRIVE_VITALS_AGE_SBS_THAT_WENT_INTO_THE_HOLDING_PEN",
"DRIVE_VITALS_AGE_OCCURANCES_OF_SBS_SKIPPED_THE_HOLDING_PEN_BECAUSE_IT_WAS_FULL",
"DRIVE_VITALS_AGE_SBS_THAT_ABORTED_AGE_MEASUREMENT"
};
DoGraph(dtIn, xCol, "DIE_AGE_DIE_AGE", "SERIAL_NUMBER", "PE_COUNTS_DIE_LOGICAL_DIE_INDEX");
DoGraph(dtIn, xCol, "DRIVE_LEVEL_DATA_DIE_AGE_DL_AVE", "SERIAL_NUMBER", "");
DoGraph(dtIn, xCol, hpList, "SERIAL_NUMBER", "");그래프 빌더 환경 설정을 조작하여 매끄러운 부분이 처음에는 나타나지 않도록 할 수 있습니다. 아니면 이런 종류의 일을 할 수 있습니다.
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) )
);
Wait(2);
gbb = Report( gb )[Graph Builder Box( 1 )];
Print(gbb << Get Elements( 1, 1 ));
gbb << removeElement(1, 1, 2);
Print(gbb << Get Elements( 1, 1 ));안녕 이안,
당신의 응답을 주셔서 감사합니다. 이상적으로는 처음부터 매끄럽게하는 것을 방지하고 싶습니다. 그래프 빌더 환경 설정을 조작하는 방법을 알아 내려고했지만, 발견 된 유일한 관련 색인 항목은 "플랫폼 환경 설정 무시 (1)"이었습니다. 그리고 이것은 아무런 영향을 미치지 않는 것 같습니다. 한 가지 중요한 것은 세 가지 경우에서 기본 동작이 달라진다는 점입니다.
synatax 스크립팅이 그래프 빌더 환경 설정에 액세스 할 수있는 방법에 대한 제안 사항은 무엇입니까?
감사,
계산서
조금 파고 나면 마술 총알을 발견했습니다.
플랫폼 기본 설정 (그래프 빌더 (연속 매끄러운 (0)));
이안을 올바른 방향으로 가리켜 주셔서 감사합니다.