Wie stelle ich die automatische Achsenskalierung mit Skripten ein?Wie kann die Achse mit JMP 13 mithilfe von Skriptbefehlen auf automatische Skalierung eingestellt werden?
Ein Ausschnitt aus dem Skriptcode, der eine einfache Variable für die Mindest- und Höchstwerte zeigt.
SendToReport(
Dispatch(
{},
"val",
ScaleBox,
{Min( Axis_min ), Max( Axis_max ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 5, "Dotted", "Medium Dark Red", "5", 4 )}
),Ziel: Erlauben Sie etwas anderem (Benutzer, Skript, Anderes), die Achse (Min. und Max.) gezielt festzulegen, oder erlauben Sie dem Benutzer, „Auto“ auszuwählen.
Die Suche in den Handbüchern und Referenzdokumenten zeigt, dass es auf einen numerischen Wert eingestellt werden kann, dokumentiert jedoch keine Funktion zur automatischen Skalierung.Ich hatte gehofft, dass die Übergabe von „Auto“, einem Punkt oder einem anderen Symbol funktionieren würde, aber das funktioniert nicht.
Außerdem ist es nicht möglich, die Min- und Max-Einstellungslinie insgesamt wegzulassen, um die automatische Skalierung zu erreichen, da dies das Ziel zunichte macht, den Wert durch etwas festlegen zu lassen.
Vielen Dank für die Hilfe im Voraus.
Betreff: Wie stelle ich die automatische Achsenskalierung mit Skripten ein?Entschuldigung, aber ich habe die Variablen von Axis_min in A geändert. Nur für den Fall, dass jemand dem ursprünglichen Dokument nicht folgen kannBetreff: Wie stelle ich die automatische Achsenskalierung mit Skripten ein?Die Lösung besteht darin, die Funktion „Achse wiederherstellen“ zu verwenden.Für die Erstellung eines Skripts ist jedoch zusätzliche Hilfe erforderlich.
Der Schlüssel besteht darin, die in der Achseneinstellung verwendete Variable zu überprüfen, um festzustellen, ob es sich um eine Zahl handelt.Ist dies nicht der Fall, gibt JMP einen fehlenden Wert zurück. {siehe Skripthandbuch, S. 68, Kapitel 3, unter Zeichenfunktionen. } Dies ermöglicht eine Prüfung auf etwas anderes als eine Zahl, um die Achse auf eine automatische Skalierung zurückzusetzen, sowie die Übergabe eines Werts an die Skriptfunktion.
axisbox(2) ist die y-Achse und axisbox(1) ist für die x-Achse.Der Report(gp) ist das Objekthandle für das spezifische Diagramm.
if( ( Is Missing(num( A )) | Is Missing(num( B )) ),
Report(gb)[axisbox(2)] << {Revert Axis}; // axisbox(2) is the y axis
);Es funktioniert großartig.danke für die Hilfe
Betreff: Wie stelle ich die automatische Achsenskalierung mit Skripten ein?Ich stimme zu. Mit einer kleinen Änderung kann ich dies jedoch per Skript zum Laufen bringen. Ich poste die Details unten.Betreff: Wie stelle ich die automatische Achsenskalierung mit Skripten ein?Ich denke, wenn Sie das Argument „Send to Report()“ entfernen, werden Sie die spezifischen Achseneinstellungen nicht erzwingen und JMP skaliert die Achse automatisch. Dieses Argument wird verwendet, um die Einstellungen zu replizieren, wenn Sie ein Skript speichern. Es ist sonst unnötig. Jims Idee ist die richtige Lösung, wenn bestimmte Einstellungen vorgenommen wurden, aber das Löschen dieses Teils des Skripts macht diesen zusätzlichen Schritt überflüssig.
„An Report() senden“ ist nicht die empfohlene Methode zum Skripten von Objekten. Senden Sie stattdessen Nachrichten an das Zielobjekt.
Betreff: Wie stelle ich die automatische Achsenskalierung mit Skripten ein?Ich denke, was Sie verwenden möchten, ist die Meldung „Achse zurücksetzen“.Es setzt die Achse auf den automatisch berechneten Wert für eine bestimmte Plattform zurück.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate( Y( :weight ), X( :height ), FitLine );
rbiv = biv << report;
axisbox = rbiv[axis box( 1 )];
axisbox << Max( 120 );
axisbox << Revert Axis;