열 데이터를 기반으로 참조선 자동화안녕하세요, 저는 JSL을 처음 접했고 특정 열의 값을 기반으로 그래프에 여러 참조선을 자동으로 생성하는 방법을 고민하고 있습니다. 현재는 Y축에 변수 1개(:Signal)를, X축에 변수 3개(:Zone, :Target, :Condition)를 그래프로 표시하고 있습니다. 각 (:Target) 변수에는 특정 (:historical 신호)가 있으며 (:Target)의 (:historical 신호)를 참조선으로 자동 그래프로 표시하는 방법을 찾고 싶습니다. 내가 가지고 있는 코드는 h line()을 통해 과거 신호 값을 수동으로 추가하는 방식으로 수행되지만 이상적으로 스크립트는 해당 과거 신호를 기반으로 각 (:target)에 대한 참조선을 추가합니다. 감사합니다!
Variability Chart(
Y( :Signal ),
X( :Zone, :Target, :Condition ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 ),
Mean Diamonds( 1 ),
SendToReport(
Dispatch(
{"Variability Chart for Signal"},
"Variability Chart",
FrameBox,
{Frame Size( 969, 240 ),
Add Graphics Script(
2,
Description( "" ),
Pen Color( "RED" );
//Target 2
H Line( 0, 2, 234 );
//Target 3
H Line( 2, 4, 670 );
//Target 1
H Line( 4, 6, 463 );
)}
)
)
);
자동화 및 스크립팅Re: 열 데이터를 기반으로 참조선 자동화수행해야 할 작업은 값과 순서를 가져오는 방법을 파악한 다음 필요한 JSL을 생성하는 것입니다.다음은 최종 스크립트를 작성하기 위한 올바른 방향의 시작을 제공하는 간단한 예입니다.
Names Default To Here( 1 );
dt = Current Data Table();
// Find the number of targets and get the means
Summarize( dt, targs = by( :Zone, :Target ), targMeans = Mean( :Historical Signal ) );
vc = Variability Chart(
Y( :Signal ),
X( :Zone, :Target, :Condition ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 ),
Mean Diamonds( 1 )
);
// Create the JSL to submit to generate the Target Lines
theExpr =
"Report( vc )[FrameBox( 1 )] << add graphics Script(
Description( \!"\!" ),
Pen Color( \!"RED\!" );";
For( ii = 1, ii <= N Items( targMeans ), ii++,
theExpr = theExpr || "H Line( " || Char( (ii - 1) * 2 ) || "," || Char( (ii - 1) * 2 + 2 )
|| "," || Char( targMeans[ii] ) || ");";
);
Eval( Parse( theExpr ) );
Re: 열 데이터를 기반으로 참조선 자동화안녕하세요, txnelson님, 응답해 주셔서 정말 감사합니다. 제가 찾고 있던 내용이 거의 바로 이 내용입니다! 내가 궁금해하는 유일한 다른 점은 그래프에 좌표를 수동으로 입력하는 대신 h line() 코드를 해당 :Target과 일치시킬 수 있는지 여부입니다. 앞으로는 다양한 양의 타겟을 추가할 예정이며 항상 같은 순서는 아닙니다.
Re: 열 데이터를 기반으로 참조선 자동화현재 데이터 구조를 고려하여 과거 신호를 자동화하는 한 가지 방법은 다음과 같습니다.
Names Default To Here( 1 );
dt = Current Data Table();
targ1 = Mean( :Historical Signal[dt << get rows where( :Target == "Target 1" )] );
targ2 = Mean( :Historical Signal[dt << get rows where( :Target == "Target 2" )] );
targ3 = Mean( :Historical Signal[dt << get rows where( :Target == "Target 3" )] );
Variability Chart(
Y( :Signal ),
X( :Zone, :Target, :Condition ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 ),
Mean Diamonds( 1 ),
SendToReport(
Dispatch(
{"Variability Chart for Signal"},
"Variability Chart",
FrameBox,
{Frame Size( 969, 240 ), Add Graphics Script(
2,
Description( "" ),
Pen Color( "RED" );
//Target 2
H Line( 0, 2, targ2 );
//Target 3
H Line( 2, 4, targ3 );
//Target 1
H Line( 4, 6, targ1 );
)}
)
)
);