嗨,
我正在尝试编写一个通用图形构建器函数来处理不同的图形条件(有或没有叠加,有或没有换行等),以下脚本适用于我的三种情况,但更顺畅(不确定它是否是线性或曲线拟合)是第一个和第二个图形,而不是第三个图形。
我不认为我正在做任何事情来打开我脚本中的平滑器。我的问题是如何通过脚本关闭平滑器?
谢谢,
法案
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 ));嗨伊恩,
感谢您的答复。 理想情况下,我想首先防止更顺畅。 我试图弄清楚如何操作图形构建器首选项,但我找到的唯一相关的scriting索引项是“忽略平台首选项(1)”,这似乎没有任何影响。 我担心的一件事是我的三种情况之间的默认行为有所不同。
有关脚本synatax可以访问图形构建器首选项的任何建议吗?
谢谢,
法案
经过一点挖掘后我找到了灵丹妙药:
设置平台首选项(图形构建器(Continuous Smoother(0)));
谢谢你指出我正确的方向伊恩。