如何获得样条拟合曲线名称?嗨,
有没有办法获得样条曲线拟合曲线名称(即,如果我们按照某个列对拟合进行分组)。
我搜索了,我发现如何引用曲线的唯一方法是它的索引号。
例如
obj = Bivariate(Y( :Weight ), X( :Height ), Fit Line);
obj << (Curve[1] << Line Width ( 2 ));
我想我可以通过使用这个代码来解决这个问题,我只是从分组列创建一个列表。
groupcol=Column(dt, "Group Col Name");
Summarize( A = by( groupcol ) );
B = groupcol << get property( value ordering );
If( Is Empty( B ),
GroupList = A,
GroupList = B
);
因此,GroupList [1]将引用Curve [1],GroupList [2]将引用Curve [2],依此类推。
但是,我看到了一个问题。如果GroupList [2]的点数太少而无法完成样条拟合,则曲线[2]实际上属于GroupList [3]!所以我意识到这不是真正的方法。
因此,这是我的问题:
1。假设我创建了一个脚本,它通过某个分组列进行样条拟合(例如,包含“红色”,“蓝色”,“绿色”,“黄色”的列),有没有办法知道ff:
1.1绘制了多少个样条拟合?
1.2哪个样条拟合属于哪个组?(即,Curve [2]属于“蓝色”还是“绿色”或“黄色”)?
谢谢。
Re:如何获得样条拟合曲线名称?谢谢吉姆。我尝试稍微调整一下以显示所有变量并将其应用于示例数据Candy Bars.jmp。
Names Default To Here( 1 );
// Read in some sample data
dt = Current Data Table();
// Run the bivariate and create the Fit line for each of the sites
biv = bivariate( y( :Total fat g ), x( :Calories ), Groupby( :Brand ), Fit line );
// The Outline Box for the fit can be read
TheTitle = Report( biv )[Outline Box( 2 )] << get title;
Show( TheTitle );
// Here is a little bit of code that can get the list of values for the Linear Fit, and
// get the curve number
AllTitles = CurveNumber = {};
i = 2;
FitNum = 0;
While( Try( Report( biv )[Outline Box( i )] << get title, "" ) != "",
If(
Word( 1, Report( biv )[Outline Box( i )] << get title ) == "Linear" & Word(
2,
Report( biv )[Outline Box( i )] << get title
) == "Fit",
FitNum = FitNum + 1;
Show (FitNum);
AllTitles[FitNum] = Word( 3, Report( biv )[Outline Box( i )] << get title );
Show (AllTitles[FitNum]);
CurveNumber[FitNum] = FitNum;
Show(CurveNumber[FitNum]);
);
i = i + 1;
);我得到这个输出:
/*:
TheTitle = "Linear Fit Brand==\!"Adams & Brooks\!"";
FitNum = 1;
AllTitles[FitNum] = "Brand==\!"Adams";
CurveNumber[FitNum] = 1;
FitNum = 2;
AllTitles[FitNum] = "Brand==\!"Annabelle\!"";
CurveNumber[FitNum] = 2;
FitNum = 3;
AllTitles[FitNum] = "Brand==\!"Bit-O-Honey\!"";
CurveNumber[FitNum] = 3;
FitNum = 4;
AllTitles[FitNum] = "Brand==\!"Brown";
CurveNumber[FitNum] = 4;
FitNum = 5;
AllTitles[FitNum] = "Brand==\!"Charms\!"";
CurveNumber[FitNum] = 5;
FitNum = 6;
AllTitles[FitNum] = "Brand==\!"Hershey\!"";
CurveNumber[FitNum] = 6;
FitNum = 7;
AllTitles[FitNum] = "Brand==\!"Just";
CurveNumber[FitNum] = 7;
FitNum = 8;
AllTitles[FitNum] = "Brand==\!"Leaf\!"";
CurveNumber[FitNum] = 8;
FitNum = 9;
AllTitles[FitNum] = "Brand==\!"M&M/Mars\!"";
CurveNumber[FitNum] = 9;
FitNum = 10;
AllTitles[FitNum] = "Brand==\!"Myerson\!"";
CurveNumber[FitNum] = 10;
FitNum = 11;
AllTitles[FitNum] = "Brand==\!"Nabisco\!"";
CurveNumber[FitNum] = 11;
FitNum = 12;
AllTitles[FitNum] = "Brand==\!"Nestle\!"";
CurveNumber[FitNum] = 12;
FitNum = 13;
AllTitles[FitNum] = "Brand==\!"Pearson\!"";
CurveNumber[FitNum] = 13;
FitNum = 14;
AllTitles[FitNum] = "Brand==\!"Sherwood\!"";
CurveNumber[FitNum] = 14;
FitNum = 15;
AllTitles[FitNum] = "Brand==\!"Standard\!"";
CurveNumber[FitNum] = 15;
FitNum = 16;
AllTitles[FitNum] = "Brand==\!"Tobler\!"";
CurveNumber[FitNum] = 16;
FitNum = 17;
AllTitles[FitNum] = "Brand==\!"Tootsie\!"";
CurveNumber[FitNum] = 17;
FitNum = 18;
AllTitles[FitNum] = "Brand==\!"Weider\!"";
CurveNumber[FitNum] = 18;
如果您注意到,如果遇到空格,脚本会删除名称。例如 “Adams&Brooks”成为“Adams”,而“Brown&Haley”成为“Brown”但我也会尝试调整它。另外,我正在考虑在每组的基础上进行样条拟合。再次感谢您的帮助。
Re:如何获得样条拟合曲线名称?这是一种获取曲线数字的方法,以及它们与之匹配的方式
Names Default To Here( 1 );
// Read in some sample data
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
// Run the bivariate and create the Fit line for each of the sites
biv = bivariate( y( :npn1 ), x( :pnp1 ), Groupby( :site ), Fit line );
// The Outline Box for the fit can be read
TheTitle = Report( biv )[Outline Box( 2 )] << get title;
Show( TheTitle );
// Here is a little bit of code that can get the list of values for the Linear Fit, and
// get the curve number
AllTitles = CurveNumber = {};
i = 2;
FitNum = 0;
While( Try( Report( biv )[Outline Box( i )] << get title, "" ) != "",
If(
Word( 1, Report( biv )[Outline Box( i )] << get title ) == "Linear" & Word(
2,
Report( biv )[Outline Box( i )] << get title
) == "Fit",
FitNum = FitNum + 1;
AllTitles[FitNum] = Word( 3, Report( biv )[Outline Box( i )] << get title );
CurveNumber[FitNum] = FitNum;
);
i = i + 1;
);