Im folgenden Beispiel verwende ich einen Datenfilter, um die Daten einzuschränken – und einen lokalen Datenfilter im GraphBuilder-Skript, um die Daten weiter einzuschränken.
Es werden 3 verschiedene Ränge dargestellt.
- Die erste Rangformel (blaue Punkte) hat kein Excluded()-Argument und daher werden alle Datenpunkte gezählt, die vom (globalen) Datenfilter ausgeschlossen werden. Aus diesem Grund beginnt der erste geplottete Eintrag bereits bei einem hohen Wert.
- Die Formel für den zweiten Rang (rot) hat ein Excluded()-Argument, daher zählen einige Zeilen nicht und die Rangwerte sind niedriger. Aber trotzdem beginnen sie nicht bei 1. Dies ist klar, da die Formel in der Datentabelle gespeichert ist und nichts über die Zeilen weiß, die vom lokalen Datenfilter des Diagramms ausgeschlossen werden.
- Die dritte Rangformel ist dieselbe wie die zweite, wird jedoch in einer TRansform-Spalte verwendet, die „innerhalb“ des Plots generiert wird. Leider ignoriert auch diese Formel die Zeilen, die vom lokalen Datenfilter ausgeschlossen werden:
Welchen Trick muss ich anwenden, damit der lokale Datenfilter von der Formel nicht ignoriert wird?

Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Data Filter( Add Filter( columns( :height ), Where( :height >= 65.815 ) ) );
dt << Graph Builder(
Transform Column( "Rank[height] 3", Formula( Col Rank( :height, Excluded() ) ) ),
Variables(
X(
:name,
Order By( :"Rank[height]"n, Ascending, Order Statistic( "Mean" ) )
),
Y( :"Rank[height]"n ),
Y( :"Rank[height] 2"n, Position( 1 ) ),
Y( :"Rank[height] 3"n, Position( 1 ) )
),
Elements( Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Legend( 14 ) ) ),
Local Data Filter( Add Filter( columns( :height ), Where( :height >= 65.815 ) ) ),
SendToReport(
Dispatch(
{},
"Rank[height]",
ScaleBox,
{Min( 0 ), Max( 42 ), Inc( 5 ), Minor Ticks( 0 )}
),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
14,
Level Name(
1,
"Rank[height, Excluded]",
Item ID( "Rank[height] 2", 1 )
),
Level Name(
2,
"Rank[height, excluded] Transform Column",
Item ID( "Rank[height] 3", 1 )
),
Properties( 1, {Marker Size( 20 )}, Item ID( "Rank[height] 2", 1 ) )
)}
)
)
)