VariabilityPlot에 대해 염두에 두어야 할 점은 각 최하위 그룹의 너비가 숨겨진 x축에서 0부터 시작하여 정확히 1이라는 것입니다.이렇게 하면 관련 줄을 추가하는 것이 매우 간단해집니다.
유일한 약간의 복잡성은 각각의 더 큰 그룹에 포함된 하위 그룹 수를 파악하는 것이지만 데이터 테이블의 요약 기능이 이를 도울 수 있습니다.
다음은 요청한 작업을 수행하는 예제 스크립트입니다.

names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Cars.jmp" );
rpt = dt << Variability Chart(
Y( :Head IC),
X( :Make, :Model ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
Where( :NAME("D/P") == "Driver" & :Protection == "manual belts" ),
);
//find groupings:
rows = dt << Get Rows Where( :NAME("D/P") == "Driver" & :Protection == "manual belts" );
subt = dt << Subset( Rows( rows ), Columns( :Make, :Model, :Wt ), Not Linked, Private );
sumt = subt << Summary( Group( :Make, Model ), Mean( :Wt ), Statistics Column Name Format( "Column" ), Link to Original Data Table( 0 ), Private );
Close( subt, No Save );
subt = sumt << Summary( Group( :Make ), Mean( :Wt ), Statistics Column Name Format( "Column" ), Link to Original Data Table( 0 ), Private );
Close( sumt, No Save );
category number = [=>];
category average = [=>];
For Each Row( subt,
category number[:Make] = :N Rows; // each least-significant category in a VariabilityPlot is exactly X=1 width on the hidden x-axis, starting at zero
category average[:Make] = :Wt
);
Close( subt, No Save );
tree = rpt << Report;
Eval( Eval Expr(
tree[FrameBox( 1 )] << Add Graphics Script(
Local( {values = Expr( category average ), numbers = Expr( category number ), i, items, sum = 0},
items = categories << Get Keys;
Pen Size( 2 );
Pen Color( "Blue" );
Summation( i = 1, N Items( items ),
Line( Eval List( {sum, values[items[i]]} ), Eval List( {sum += categories[items[i]], values[items[i]]} ) );
0
)
)
)
) )안녕,
우선 정보와 코드에 대해 정말 감사합니다. 한 줄 한 줄 짚어가며 어떻게 스크립트를 작성했는지 배우려고 노력하고 있습니다. 스크립트를 실행할 때 콘솔 로그를 통해 보이는 "cagegories << Get Keys" 줄에 대한 오류가 발생합니다. 이 문제를 해결하는 방법이나 다른 변수로 간주되는 경우를 알고 계십니까?


도움을 주셔서 감사합니다!
죄송합니다. 변수 이름을 부분적으로만 변경했습니다.이름 카테고리 했어야 했어 숫자 .위 답변으로 수정했습니다.
안녕하세요 여러분,
두 가지 조건으로 분할되는 가변성 차트를 만들었습니다. 이렇게 하면 jmp가 공유된 y축이 있는 차트를 생성합니다. 이 공유 y축에 대한 문제는 수평선을 추가할 때 그룹별로 다른 수평선을 가질 수 있는 대신 각 x 분할에 걸쳐 수평선을 추가한다는 것입니다. 수평선이 원래 데이터 테이블의 값이되기를 원하는 값으로 각 루프에 대해 이것이 가능한지 궁금합니다.
names default to here(1);
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Cars.jmp" );
dt << Variability Chart(
Y( :Head IC),
X( :Make, :Model ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Show Range Bars( 0 ),
Show Cell Means( 0 ),
Std Dev Chart( 0 ),
Points Jittered( 1 ),
By( :NAME("D/P"), :Protection )
);
이것이 이상적으로 테이블의 값을 기준으로 어떻게 보이길 원하는지입니다.
현재 시도는 다음과 같습니다.
for each( {bygroup, i}, value,
report(dt[i])[AxisBox(1)] << add ref line(value[i], "Dotted","Black", Char(value[i]))이 데이터 세트를 사용하기 위해 ":Wt" 열을 사용하여 이를 표시할 수 있다면 진심으로 감사하겠습니다. 감사합니다!