Hinzufügen von Text mit statistischer Zusammenfassung und automatischer Positionierung unter dem BoxplotHallo, ich habe den Graph Builder mit generiertem Skript wie folgt erstellt:
Graph Builder(
Transform Column( "Unit Number", Nominal, Formula( Char( :"Unit S/N"n ) ) ),
Size( 570, 817 ),
Show Legend( 0 ),
Variables( X( :Unit Number ), Y( :Bounding_Circle_Diameter um ) ),
Elements( Box Plot( X, Y, Legend( 6 ) ) ),
Local Data Filter(
Add Filter(
columns( :Aperture Name ),
Where( :Aperture Name == "F_4.8" ),
Display( :Aperture Name, N Items( 3 ), "List Display" )
)
),
SendToReport(
Dispatch(
{},
"Bounding_Circle_Diameter um",
ScaleBox,
{Min( 1500 ), Max( 5000 ), Inc( 500 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( "Bounding_Circle_Diameter um (F/4.8)" ), Set Font Size( 20 )}
),
Dispatch( {}, "X title", TextEditBox, {Set Font Size( 18 )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Font Size( 18 )} ),
Dispatch(
{},
"Graph Builder",
FrameBox,
{Reference Line Order( 6 ),
Add Graphics Script(
2,
Description( "" ),
Text( Center Justified, {0, 2150}, "Range: 44.4638" );
Text( Center Justified, {0, 2050}, "Mean: 2288.48" );
Text( Center Justified, {1, 2500}, "Range: 136.315" );
Text( Center Justified, {1, 2400}, "Mean: 2681.81" );
Text( Center Justified, {2, 2100}, "Range: 97.6151" );
Text( Center Justified, {2, 2000}, "Mean: 2278.41" );
)}
)
)
);Der Text und die Positionen wurden jedoch manuell mit fest codierten Werten erstellt. Wie man sieht, werden die Daten mit bestimmten Spaltenwerten gefiltert. Gibt es eine Möglichkeit, diese fest codierten Werte durch die jeweiligen Statistiken aus den Daten zu ersetzen?
Y-Position des Textes -> aus Mindestwerten der Datenteilmenge
Mittelwert -> Durchschnittswert aus der Datenteilmenge
Bereich -> Max. - Min. aus der Datenteilmenge
Danke
Automatisierung und SkripterstellungDatenexploration und -visualisierungMac OSBetreff: Hinzufügen von Text mit statistischer Zusammenfassung und automatischer Positionierung unter dem BoxplotDas Caption-Element kann die Statistiken automatisch aktualisieren, wenn der Filter angewendet wird, und es verfügt über einige Optionen für die Platzierung der Statistiken.Wenn Sie JMP 17 verwenden, besteht eine der Optionen darin, die Statistiken in einer Tabelle unterhalb der Achse zu platzieren.Um die benutzerdefinierte Platzierung beizubehalten, müssten Sie wahrscheinlich einen JSL-Zeilenstatushandler implementieren, um die Statistiken per Skript zu berechnen und zu ersetzen.

dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Graph Builder(
Size( 528, 464 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements(
Box Plot( X, Y, Legend( 6 ) ),
Caption Box(
X,
Y,
Legend( 7 ),
Summary Statistic( "Mean" ),
Summary Statistic 2( "Range" ),
Location( "Axis Table" )
)
),
Local Data Filter( Add Filter( columns( :sex ), Where( :sex == "M" ) ) )
);
Betreff: Hinzufügen von Text mit statistischer Zusammenfassung und automatischer Positionierung unter dem BoxplotEs gibt eine bessere Methode, um einem Diagramm Grafikausgaben hinzuzufügen.Sehen Sie sich das folgende Beispielskript an, um zu erfahren, wie Sie dynamisch bestimmen, wo und was in einem Diagramm angezeigt werden soll.

Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
// Create the graph
gb = Graph Builder(
Size( 528, 456 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
// Access the report output
rgb = gb << report;
// Add a graphics script to the report output
rgb[framebox( 1 )] << add graphics script(
// Find the parametrics of the displayed graph
xMaxAxis = rgb[AxisBox( 1 )] << get max;
xMinAxis = rgb[AxisBox( 1 )] << get min;
yMaxAxis = rgb[AxisBox( 2 )] << get max;
yMinAxis = rgb[AxisBox( 2 )] << get min;
// Calculate the desired column stats
heightMean = Col Mean( :height );
heightRange = Col Max( :height ) - Col Min( :height );
// Calculate the xy position on the graph to display the text
pos = As List(
Matrix( (xMinAxis + .1 * (xMaxAxis - xMinAxis)) |/ (yMaxAxis - .1 * (yMaxAxis - yMinaxis)) )
);
// Write out the text
Text( Center Justified, pos, "Mean: " || Format( heightMean, "fixed dec", 7, , 2 ) );
// Change the display position for the next line to be displayed
pos[2] = pos[2] - .05 * (yMaxAxis - yMinaxis);
// Write out the new line
Text( Center Justified, pos, "Range: " || Format( heightMean, "fixed dec", 7, , 2 ) );
);
Betreff: Hinzufügen von Text mit statistischer Zusammenfassung und automatischer Positionierung unter dem BoxplotEinige Punkte zur Verwendung eines Grafikskripts:
- Die Berechnung des Grafikskripts erfolgt bei jeder Aktualisierung des Bildschirms
- Bei der Berechnung werden die Zeilenzustände nicht verwendet, sodass weiterhin Probleme mit Filtern auftreten
- Wenn Sie das Skript von der Plattform speichern und später erneut ausführen, funktioniert es nicht, da es nicht eigenständig ist.Dies wirkt sich auch auf das Speichern in einem Workflow, Projekt, Dashboard oder in einer JRP-Datei aus.