毎回グループを変更するための背骨ラインを作成する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 x y グラフを作成します。今、背骨の線を追加しようとしていますが、2 つの問題があります。
1. 背骨の線は「Group」列に基づいて作成する必要があり、異なる値を持つ可能性があります(「Value1」が「Value4」である場合や、「Value0」が「Value34」になる場合があるなど)ので、作成する方法を見つける必要があります。可能であればリスト付きで
2. 私が望むような4つの背骨のラインではなく、1つの背骨のラインを作成します
私のテーブル
| グループ | テスト1 | テスト2 | テスト3 | 1 | 1 |
| BL | 1 | 1 | 1 | 1 | 1 |
| BL | 2 | 2 | 2 | 2 | 65 |
| BL | 23 | 3 | 6 | 1 | 1 |
| POR | 2 | 2 | 2 | 2 | 2 |
| 値1 | 1 | 1 | 1 | 3 | 4 |
| POR | 5 | 7 | 2 | 2 | 2 |
| 値1 | 7 | 5 | 1 | 7 | 3 |
| 値2 | 2 | 2 | 2 | 2 | 2 |
| 値0 | 8 | 1 | 1 | 1 | 6 |
手動で行う場合は次のようになります。

次に、「グループ」で選択します(何らかの方法でこれをスクリプトに追加する必要があると思います)
次に、「フレキシブル」をクリックし、「スプラインをフィット」をクリックし、「標準化x」をマークして、「OK」をクリックします。
最後に追加するのは行の凡例です

高度な統計モデリングデータのブレンディングとクリーンアップマスカスタマイゼーションRe: 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] ))
);Re: JSLがグループ変更のたびに背骨ラインを作成するこんにちは、
これについては式の処理を検討する必要があると思います。 式から始めて、そこに何かを挿入します。具体的には、フィット スプラインの詳細をフィット y x 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;