JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?아래 예제 스크립트는 Y축에 플롯하려는 고정된 소수의 매개변수에 필요한 작업을 수행합니다.
위에서 Y에 제공되는 목록에 대해 이를 자동화하는 방법은 무엇입니까?
(X 변수/열은 고정된 상태로 유지되지만 Y로 가는 요소 수는 변경될 수 있으며 다른 스크립트에서 제공됩니다.)
Names Default To Here (1);
Clear Log ();
dt = open("$sample_data\Big Class.jmp");
y_values = {"name", "age", "sex", "weight"};
Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height),
Y( column(dt, y_values[1]) ),
Y( column(dt, y_values[2]) ),
Y( column(dt, y_values[3]) ),
Y( column(dt, y_values[4]) )
),
Elements( Position( 1, 1 ), Points( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Points( X, Y, Legend( 2 ) ) ),
Elements( Position( 1, 3 ), Points( X, Y, Legend( 3 ) ) ),
Elements( Position( 1, 4 ), Points( X, Y, Legend( 4 ) ) )
);또한 이 경우 Elements()를 어떻게 처리합니까?
자동화 및 스크립팅윈도우Re: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?@호기 감사합니다. 이전에 Expr() 및 Insert NameExpr() 함수를 사용한 적이 없기 때문에 좀 더 손을 잡고 있어야 할 것 같습니다. 내 OP에 추가한 예제 스크립트를 사용하여 예제를 제공할 수 있다면 유용할 것입니다.
Re: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?이는 이를 구축하는 옵션일 뿐만 아니라 몇 가지 아이디어를 제공할 수도 있습니다. GraphBuilderbox의 변수 및 요소에 대한 스크립팅 인덱스도 검색합니다.
Names Default To Here(1);
dt = Open("$sample_data\Big Class.jmp");
y_values = {"name", "age", "sex", "weight"};
variables_expr = Expr(Variables(X(:height)));
For Each({y_col}, y_values,
temp_expr = Expr(Y());
Insert Into(temp_expr, Name Expr(AsColumn(dt, y_col)));
Insert Into(variables_expr, Name Expr(temp_expr));
);
gb_expr = Expr(Graph Builder(
Show Control Panel(0)
));
Insert Into(gb_expr, Name Expr(variables_expr));
For Each({y_col, idx}, y_values,
Eval(EvalExpr(
Insert Into(gb_expr,
Name Expr(Elements(Position(1, Expr(idx)), Points(X, Y, Legend(Expr(idx)))))
)
));
);
Show(Name Expr(gb_expr));
Eval(gb_expr);
편집하다:
Add Variable()을 사용한 예
Names Default To Here(1);
dt = Open("$sample_data\Big Class.jmp");
y_values = {"name", "age", "sex", "weight"};
variables_expr = Expr(Variables(X(:height)));
gb = dt << Graph Builder(
// Ignore Platform Preferences(1),
Show control Panel(0),
Variables(X(:height))
);
gb << inval;
For Each({y_col, idx}, y_values,
Eval(EvalExpr(
gb << Add Variable({Expr(Name Expr(As Column(dt, y_col))), Role("Y")})
));
// if you just want points, you shouldn't need this, but smoother idx is 2 instead of 1
/* gb << Remove Element(1, idx, 1);
Eval(EvalExpr(
gb << Add Element(1, Expr(idx), {Type("Points"), X, Y, Legend(Expr(idx))})
));
*/
);
gb << Update window;
gb << Remove Element(1, N Items(y_values), 2); // 1 or 2 for smoother idx, depending on how GB is builtRe: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?@jthi 감사해요. 이것은 나에게 효과적이지만 기본 차트 제목을 변경할 수 없습니다. JSL을 통해 이를 수행하는 방법은 무엇입니까?
Re: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?제목으로 정의한 내용에 따라 다릅니다.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables(X(:height), Y(:weight)),
Elements(Points(X, Y), Smoother(X, Y))
);
gb << Title("Test");
그리고 그래프 빌더 위의 텍스트 편집 상자라고 생각하면 수동으로 변경한 다음 JMP에서 생성된 스크립트를 수정하세요.
SendToReport(Dispatch({}, "graph title", TextEditBox, {Set Text("asdsad")}))
JMP17이 있고 속성을 사용하면 더 많은 정보를 얻을 수 있습니다.

그래서 뭔가
Report(gb)[TextEditBox(1)] << Set Text("12313213");
보고서에 따라 작동할 수도 있습니다.
Re: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?@jthi 감사해요. 귀하가 보여주는 간단한 사례의 경우 차트 제목을 표시하는 방법을 알고 있지만 아래 사례에서는 이를 어떻게 수행합니까?
Names Default To Here(1);
dt = Open("$sample_data\Big Class.jmp");
y_values = {"name", "age", "sex", "weight"};
variables_expr = Expr(Variables(X(:height)));
For Each({y_col}, y_values,
temp_expr = Expr(Y());
Insert Into(temp_expr, Name Expr(AsColumn(dt, y_col)));
Insert Into(variables_expr, Name Expr(temp_expr));
);
gb_expr = Expr(Graph Builder(
Show Control Panel(0)
));
Insert Into(gb_expr, Name Expr(variables_expr));
For Each({y_col, idx}, y_values,
Eval(EvalExpr(
Insert Into(gb_expr,
Name Expr(Elements(Position(1, Expr(idx)), Points(X, Y, Legend(Expr(idx)))))
)
));
);
Show(Name Expr(gb_expr));
Eval(gb_expr);Re: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?그래프 빌더에 대한 참조를 얻으면 두 가지 아이디어가 모두 작동할 것입니다.
Re: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?@jthi 감사합니다. 하지만 스크립팅 인덱스에 Get Reference()가 표시되지 않습니다(JMP 16.2.0을 사용 중입니다). 그래프 빌더 창의 창 이름을 가져오라는 뜻인가요?
Re: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?Current Report()[TextEditBox( 1 )] << set text( "NewTitle" );
이것은 나에게 효과적입니다.
Re: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?그래프를 생성하는 표현식을 평가할 때 참조를 얻는 것이 좋습니다. 제 생각에는
gb = Eval(gb_expr);
작동해야합니다. 또한 여러 테이블이 열려 있을 가능성이 있는 경우 dt를 사용하여 Graph Builder를 생성하는 것이 좋습니다. 이 경우 테스트 없이 수행할 수 있는 가장 쉬운 구문이 무엇인지는 잘 모르겠습니다.
Re: JSL의 목록에서 Graph Builder의 Y 변수를 전달하는 방법은 무엇입니까?표현식에 대해 var 및 gb 기호를 생성할 수 있습니다.
Var= Expr(variables(x(:height)))
gb =Expr(Graph Builder())
그런 다음 사용 에 집어 넣다 안에 을 위한 var를 Ys로 채우는 루프를 만든 다음 삽입합니다. 이름Expr(var) ~ 안으로 GB 그런 다음 다른 것을 사용하십시오 을 위한 반복하여 Elements 표현식을 추가합니다.