미리 작성된 스크립트 그래프를 Application Builder 모듈에 포함하는 방법은 무엇입니까?안녕하세요 여러분,
저는 Application Builder에서 스크립팅 중입니다. 내 모듈 중 하나에 미리 만들어진 그래프를 표시하도록 설정할 의도로 Graph Box가 있지만 운이 좋지 않습니다. 원래 가장 쉬운 방법은 미리 만든 그래프를 모듈 창에 삽입하는 것이라고 생각했기 때문에 Graph Box를 자리 표시자로 사용하려고 시도했습니다.
graphBox << Visibility("Collapse");
panelBox << Append( /*graph*/ ) );...하지만 이것은 작동하지 않았습니다. 잠재적으로 가장 쉬운 방법은 실제로 다른 그래프 항목을 그래프 상자에 개별적으로 스크립팅하는 것입니다. 저는 JSL을 처음 접했기 때문에 제 접근 방식/구문이 어떤 면에서 잘못되었다는 것을 알고 있지만, 이를 수행하는 가장 좋은/가장 쉬운 방법이 무엇인지 잘 모르겠습니다!
내가 원하는 그래프를 만드는 코드(도움이 되는 사용자 덕분에 내가 게시 한 다른 질문 ) 이다:
Names Default To Here(1);
datafile = Open( "Data.xlsx" );
x_col = Column(datafile, 1);
y_cols = (datafile << Get Column Names())[2::N Cols(datafile)];
var_expr = EvalExpr(
Variables(X(Expr(x_col))
));
var_line = Expr(Line(X));
For Each({col, idx}, y_cols,
y_expr = Expr(Y(Position(1)));
Insert Into(y_expr, NameExpr(col), 1);
Insert Into(var_expr, Name Expr(y_expr));
yline_expr = Parse("Y("||char(idx)||")");
Insert Into(var_line, Name Expr(yline_expr));
);
graphbuild = Eval(Substitute(
Expr(
graphbuild = datafile << Graph Builder(
Size(838, 391),
Show Control Panel(0),
vvv,
Elements(yyy)
)
),
Expr(vvv), Name Expr(var_expr),
Expr(yyy), Name Expr(var_line)
));
/*gb_image = graphbuild << get picture;
graphbuild << Close Window;
New window("time-series plot",
gb_image
);*/이 코드의 마지막 부분을 주석 처리했습니다. 왜냐하면 "<< Get Picture"가 아니라 Control Panel이 단순히 억제된 결과 그래프("Show Control Panel(0)")를 선호하기 때문입니다. 이는 Graph Builder를 숨기기 때문입니다. 사용자를 위한 기능을 제공하지만 여전히 동적 그래프(잡을 수 있고 움직일 수 있는 축 등)를 허용합니다. 이런 식으로 그래프를 삽입할 수 있다면 그것이 나의 이상적인 경로입니다.
도움을 주시면 감사하겠습니다.
감사합니다,
에스텔
제도법스크립팅Re: 미리 작성된 스크립트 그래프를 Application Builder 모듈에 포함하는 방법은 무엇입니까?안녕하세요 Estelle - 귀하가 Application Builder 내에 있거나 JSL로 직접 작성하는지 여부에 관계없이 보고서를 스크립팅하는 데 도움이 될 수 있는 한 가지 솔루션을 제공하겠습니다.포함 창 없이 플랫폼을 시작하면 창이 자동으로 생성됩니다."라이브" 플랫폼에는 보고서가 하나만 있을 수 있으므로 기존 창에 보고서를 추가하려고 하면 보고서 사본이 생성됩니다.이것은 그림을 만드는 것보다 약간 더 인터랙티브하지만 원하는 것이 아닙니다.
아래 예제 스크립트에서 기존 창에 콘텐츠를 추가하는 세 가지 방법을 보여 주며 결과는 서로 다른 수준의 상호 작용을 나타냅니다.
- 첫 번째 경우에는 라이브 그래프 빌더 플랫폼이 기존 창에 직접 포함됩니다.플랫폼은 다른 창을 생성하지 않으며 복사도 수행되지 않습니다.
- 두 번째 창에서는 상호 작용이 적은 보고서 복사본이 추가됩니다.이것은 플랫폼 개체가 없는 보고서 자체의 복사본입니다.데이터 테이블과 연결되어 있지 않습니다.
- 세 번째 창에서 상호 작용이 가장 적은 그래프 빌더의 이미지를 추가합니다.
// Create an empty window first
New Window("Interactive Report",
panel = Panel Box("Interactive Report")
);
Wait(2);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// Append a Graph Builder to the existing window
// This report will be entirely interactive
// Axes can be changed, and points can be selected
panel << Append(gb = dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :height ), Y( :weight ), Overlay( :sex ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) )
));
// We could try to create windows from existing platforms
// This will lose some interactivity
// Axes can change, but the selection is fixed
New Window("Report Copy",
panel2 = Panel Box("Report Copy",
)
);
Wait(2);
panel2 << Append(Report(gb)); // creates a copy of the report
// Or we could take a picture of the report
// This is the least interactive result - nothing can change
New Window("Report Picture",
panel3 = Panel Box("Report Picture",
)
);
Wait(2);
panel3 << Append(gb << Get Picture);<BR />
JMP 애플리케이션 내에서 이러한 접근 방식 중 하나를 사용할 수 있어야 합니다.첫 번째 접근 방식을 사용하면 앱에서 만든 상자에 추가할 수 있습니다. <