如何獲得樣條擬合曲線名稱?嗨,
有沒有辦法獲得樣條曲線擬合曲線名稱(即,如果我們按照某個列對擬合進行分組)。
我搜索了,我發現如何引用曲線的唯一方法是它的索引號。
例如
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;
);