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 그래프를 생성합니다. 이제 척추 선을 추가하려고 하는데 두 가지 문제가 있습니다.
1. 척추 선은 "그룹" 열을 기반으로 생성되어야 하며 다른 값을 가질 수 있으므로(예: "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 | 삼 | 6 | 1 | 1 |
| 포 | 2 | 2 | 2 | 2 | 2 |
| 값1 | 1 | 1 | 1 | 삼 | 4 |
| 포 | 5 | 7 | 2 | 2 | 2 |
| 값1 | 7 | 5 | 1 | 7 | 삼 |
| 값2 | 2 | 2 | 2 | 2 | 2 |
| 값0 | 8 | 1 | 1 | 1 | 6 |
내가 손으로 하면 다음과 같다.

그런 다음 "그룹"을 선택합니다(어떻게든 스크립트에 추가해야 한다고 생각합니다).
그런 다음 "flexible" --> "fit spline" --> "standardize 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 맞춤 표현식에 추가하게 됩니다.
표현식 처리는 학습 곡선이 가파르지만 매우 강력합니다.
이것이 당신이 원하는 길로 가는지 확인하십시오. 원본 표현식의 _XX_를 다양한 그룹 수준으로 대체하는 Insert Into()와 Substitute()의 조합을 확인하세요.
건배,
브래디
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;