안녕하세요 커뮤니티 여러분,
어려운 질문을 가지고 왔습니다. 참고로 아래 이미지를 참조하세요. 저는 JMP 18을 사용하고 있으며, 다양한 범주에 대한 분기별 PPB 값을 보여주는 막대 차트를 만들려고 합니다. 제가 겪는 문제는 차트에서 가장 높은 총 가치를 가진 범주를 스택의 맨 아래에 두고 싶다는 것입니다. 예를 들어, 아래 이미지에서 범주 메모리는 모든 막대 스택의 맨 아래에 있어야 하고 그 다음에 금속 등이 와야 합니다. 이것들의 위치를 수동으로 변경할 수 있다는 것은 알지만, 이 질문의 복잡한 부분은 바로 여기에 있습니다.
아래 이미지에서 다양한 기술을 살펴볼 수 있는 로컬 데이터 필터가 있는 것을 볼 수 있습니다. 다양한 뷰를 변경하면 오버레이 범주의 총 값이 크게 변경됩니다. 로컬 데이터 필터가 변경될 때마다 앞서 설명한 대로 오버레이 범주를 자동으로 재정렬하는 스크립트가 필요합니다.
로컬 데이터 필터가 변경될 때 활성화되는 함수를 만들 수 있었습니다. 그래프에 나타나는 범주의 값을 어떤 유형의 배열로 가져와서 사용자 지정 순서를 만든 다음 그래프에 적용하는 방법을 알아낼 수 없습니다. 이 작업을 하는 방법을 아는 사람이 있나요?

로컬 데이터 필터가 변경될 때 활성화되는 함수에 대한 샘플 코드는 다음과 같습니다.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Cities.jmp" );
dist = Distribution(
Automatic Recalc( 1 ),
Continuous Distribution( Column( :POP ) )
);
filter = dist << Local Data Filter(
Add Filter( columns( :Region ) )
);
f = Function( {a},
Print( a );
Print( "you can glue additional code to this function" );
Return( y = a - 5 );
);
rs = filter << Make Filter Change Handler( f );
그래프 빌더의 코드는 다음과 같습니다.
PPM_TABLE << New Script("SubMech PPB by Quarter (Technologies)",
names default to here(1);
gb = Graph Builder(
Transform Column(
"PPB",
Set Properties("Configure Level", 1),
Set Property(
"Value Order",
{Custom Order(_subMech)}
),
Formula(:Sub Mech)
),
Size( 1120, 685 ),
Show Control Panel( 0 ),
Variables(
X( :CLNDR_YR_QTR_TXT ),
Y( :Net Shipments, Side( "Right" ) ),
Y( :PPB, Position( 1 ) ),
Overlay( :Sub Mech )
),
Elements(
Bar( X, Y( 2 ), Legend( 11 ), Bar Style( "Stacked" ), Label( "Label by Value" ) ),
Line( X, Y( 1 ), Overlay( 0 ), Legend( 10 ) )
),
Local Data Filter(
Add Filter(
columns( :Year, :TECH, :Fail Mech, :Sub Mech ),
Where( :TECH == "160k" ),
Where( :Fail Mech == {"*MUST SELECT", "Fab Related"} ),
Display( :TECH, N Items( 11 ), "Radio Box Display" ),
Display( :Fail Mech, N Items( 7 ), "Check Box Display" ),
Display( :Sub Mech, N Items( 7 ), "Check Box Display", Find( Set Text( "" ) ) )
)
),
SendToReport(
Dispatch( {}, "400", ScaleBox,
{Legend Model( 10, Properties( 0, {Line Color( 0 )}, Item ID( "Mean(Net Shipments)", 1 ) ) )}
),
Dispatch( {}, "graph title", TextEditBox,
{Set Text( "Fab 4 PPB by Quarter (Technologies by Sub Mechanism)" )}
),
Dispatch( {}, "400", LegendBox,
{Legend Position( {11, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], 10, [0]} )}
)
)
)
);