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} )} ) )),);リストに基づいてxx yグラフを作成します。現在、スパインラインを追加しようとしていますが、2つの問題があります。
1.スパインラインは「グループ」列に基づいて作成する必要があり、値が異なる場合があります(「Value1」は「Value4」、「Value0」は「Value34」など)。そのため、作成方法を見つける必要があります。可能であればリスト付きでこれ
2.それは私が望むように4つではなく1つの背骨線を作成します
私のテーブル
| グループ | test1 | test2 | test3 | 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 |
私が手でそれをするならば、それはこのようです:

次に、「グループ」で選択します(これを何らかの方法でスクリプトに追加する必要があると思います)
次に、「flexible」->「fitspline」->「standardizex」をマークして「ok」をクリックします。
最後に追加するのは行の凡例です

スクリプティングRe:JSLは毎回グループを変更するための背骨線を作成しますこんにちは、
このための式の処理を検討する必要があると思います。 式から始めて、それに物事を挿入します...具体的には、フィットスプラインの詳細をフィットy byx式に追加します。
式の処理には急な学習曲線がありますが、非常に強力です。
これがあなたが望む道にあなたを導くかどうか見てください。 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;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] ))
);