JSL為每次換組創建一條脊柱線
你好,
我有這個腳本:
dt = Current Data Table();
listX = {"1","2"};
listY = {"test1", "test2", "test3"};
fybx = dt << FitYByX(
Y( Eval( listY ) ),
X( Eval( listX ) ),
Fit Where( :Group == "BL", Fit Spline( 0.1, Standardized, {Line Color( {213, 72, 87} )} ) ),
try(Fit Where( :Group == "Value0", Fit Spline( 0.1, Standardized, {Line Color( {57, 177, 67} )} ) )),
try(Fit Where( :Group == "Value1", Fit Spline( 0.1, Standardized, {Line Color( {64, 111, 223} )} ) )),
try(Fit Where( :Group == "Value2", Fit Spline( 0.1, Standardized, {Line Color( {207, 121, 38} )} ) )),);它根據列表創建 x by y 圖表,我現在嘗試添加一條脊柱線,但有兩個問題:
1.脊柱線應該基於“Group”列創建,它可能有不同的值(例如“Value1”可能是“Value4”或“Value0”有時可以是“Value34”)所以我需要找到一種方法來創建如果可能的話,附上一個列表
2.它創建了 1 條脊柱線,而不是我想要的 4 條
我的桌子
| 團體 | 測試1 | 測試2 | 測試3 | 1 | 1 |
| BL | 1 | 1 | 1 | 1 | 1 |
| BL | 2 | 2 | 2 | 2 | 65 |
| BL | 23 | 3 | 6 | 1 | 1 |
| 上電複位 | 2 | 2 | 2 | 2 | 2 |
| 值1 | 1 | 1 | 1 | 3 | 4 |
| 上電複位 | 5 | 7 | 2 | 2 | 2 |
| 值1 | 7 | 5 | 1 | 7 | 3 |
| 值2 | 2 | 2 | 2 | 2 | 2 |
| 值0 | 8 | 1 | 1 | 1 | 6 |
如果我用手做它是這樣的:

然後我按“組”進行選擇(我相信我需要以某種方式將其添加到腳本中)
然後我單擊“靈活”-->“擬合樣條線”-->標記“標準化x”並單擊“確定”
我添加的最後一件事是行圖例

高級統計建模數據混合和清理大規模定制回复:JSL 創建一條用於每次更換組的脊柱線非常感謝!這有效!
如果有人想要脊柱線有不同的顏色
ColorList = {};
AList = {207, 121, 38};
BList = {64, 111, 223};
CList = {57, 177, 67};
DList = {213, 72, 87};
InsertInto(ColorList, EvalList(List(AList)));
InsertInto(ColorList, EvalList(List(BList)));
InsertInto(ColorList, EvalList(List(CList)));
InsertInto(ColorList, EvalList(List(DList)));
for (i = 1, i<=nitems(groupList), i++,
insertinto(bivExpr, substitute(expr(Fit Where( :Group == _XX_, Fit Spline( 0.1, {Line Color( _YY_ )} ))), expr(_XX_), groupList[i],expr(_YY_), ColorList[i] ))
);回复:JSL 創建一條用於每次更換組的脊柱線你好,
我認為你需要考慮一下表達式處理。 您將從一個表達式開始,然後將內容插入其中...具體來說,您將把擬合樣條線詳細信息添加到擬合 y by x 表達式中。
表達式處理的學習曲線很陡峭,但功能非常強大。
看看這是否能讓您走上您想要的道路。 請注意 Insert Into() 與 Substitute() 的組合,它用原始表達式中的 _XX_ 替換各個組級別。
乾杯,
布雷迪
names default to here(1);
dt = current data table();
listX = {"1","2"};
listY = {"test1", "test2", "test3"};
bivExpr = expr(
Bivariate(
Y( evallist(listY) ),
X( evallist(listx) ),
)
);
groupList = (associative array(dt:group << get values)) << get keys;
for (i = 1, i<=nitems(groupList), i++,
insertinto(bivExpr, substitute(expr(Fit Where( :Group == _XX_, Fit Spline( 0.1, {Line Color( {212, 73, 88} )} ))), expr(_XX_), groupList[i] ))
);
show(nameexpr(bivExpr));
bivExpr;