매번 그룹을 변경하기 위해 척추 라인을 만드는 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 개의 척추 선을 만듭니다.
내 테이블
| 그룹 | test1 | test2 | test3 | 1 | 1 |
| BL | 1 | 1 | 1 | 1 | 1 |
| BL | 2 | 2 | 2 | 2 | 65 |
| BL | 23 | 삼 | 6 | 1 | 1 |
| POR | 2 | 2 | 2 | 2 | 2 |
| 가치 1 | 1 | 1 | 1 | 삼 | 4 |
| POR | 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은 매번 그룹을 변경하기 위해 척추 라인을 만듭니다.안녕하세요,
이를 위해 표현식 처리를 살펴볼 필요가 있다고 생각합니다. 표현식으로 시작하고 여기에 항목을 삽입합니다. 특히 fit y by x 표현식에 fit spline 세부 사항을 추가합니다.
표현식 처리는 학습 곡선이 가파르지만 매우 강력합니다.
이것이 당신이 원하는 길로 가는지 확인하십시오. 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] ))
);