你好社區,
我帶著一個難題來找你。請參閱下圖以供參考。我正在使用 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]} )}
)
)
)
);