Manche Analysen erfordern eine Achsenskala, die im Graph Builder standardmäßig nicht verfügbar ist – wie zum Beispiel Arrhenius-Diagramme, bei denen die Temperatur als 1/T [K] dargestellt wird.

Beginnen wir mit dem Beispiel aus dem Skriptindex. Wir möchten manuell ein Logarithmusdiagramm erstellen und daraus lernen:
Names Default To Here( 1 );
Open( "$sample_data/big class.jmp" );
gb = Graph Builder(
Variables( X( :height ), Y( :height ) ),
Elements( Points( X, Y, Legend( 2 ) ), Smoother( X, Y, Legend( 1 ) ) ),
SendToReport(
Dispatch( {}, {:height}, ScaleBox( 2 ),
{Scale( "Log" ), Max( 1000 ), Minor Ticks( 1 ),
Label Row( Show Minor Grid( 1 ) )}
)
)
);
gbr = Report( gb );
gbr[axisbox( 1 )] << scale(
custom scale,
Scale To Internal( Function( {x}, If( x > 0, Log( x, 2 ), . ) ) ),
Scale To External( Function( {x}, Power( 2, x ) ) )
) << Min( 32 ) << Max( 100 );
Es gibt eine Funktion Auf Intern skalieren() , mit der der Logarithmus auf die X-Achse angewendet wird, und eine Scale to External(), die die Umkehrfunktion darstellt.
Nach Ausführung des Codes ...
a) Der Benutzer erhält eine logarithmische Skala auf der X-Achse (im Vergleich zur standardmäßigen logarithmischen Skala auf der Y-Achse):
[Füge einige Datenpunkte bei 200, 500, ... hinzu]

... Zusätzlich:
b) Die Option „Benutzerdefinierte Skala“ wird im Achsenmenü angezeigt.

c) ... und der Benutzer erhält Zugriff auf die Kubikwurzel- und die Johnson-Su -Skala.
In Analogie zum vorherigen Beispiel kann man Folgendes verwenden
current report()[axisbox( 1 )] << scale(
custom scale,
Scale To Internal( Function( {x}, if (x>-273, 1/(x+273)) ) ),
Scale To External( Function( {x}, if (x>0,1/x-273)) )
) << Min( 30 ) << Max( 100 ) << Inc(2);
</CODE></P>
<P>... um die Temperatur [°C] auf einer 1/K-Skala darzustellen :)</img></P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_0-1761670774224.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_0-1761670774224.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_0-1761670774224.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/85914i6584983069EAA6CA/hogi_0-1761670774224.png" role="button" title="hogi_0-1761670774224.png" alt="hogi_0-1761670774224.png" /></span></SPAN></SPAN></P>
<P>und mit</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_1-1761671084396.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_1-1761671084396.png" style="width: 305px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_1-1761671084396.png" style="width: 305px;"><img src="https://us.v-cdn.net/6038925/uploads/images/85916iB67A6BD9D405E759/hogi_1-1761671084396.png" role="button" title="hogi_1-1761671084396.png" alt="hogi_1-1761671084396.png" /></span></SPAN></SPAN><BR /> man erhält:</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_0-1761671064758.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_0-1761671064758.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_0-1761671064758.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/85915iBBBB35EF32BE213A/hogi_0-1761671064758.png" role="button" title="hogi_0-1761671064758.png" alt="hogi_0-1761671064758.png" /></span></SPAN></SPAN></P>
<BR />
<BR />
<P>Fragen:</P>
<UL>
<LI>Wo finde ich eine Dokumentation der Funktionalität?<BR /><BR /></LI>
<LI>the <FONT face="courier new,courier">Wenn()</FONT> in the <CODE class=" language-jsl">Scale To External functions can restrict the range.
further applications besides "make it work"?
Mir fiel ein seltsames Zusammenspiel von Skalierung auf Intern / Extern() auf, wenn beide Funktionen nicht zueinander invers waren.
Ist die Verwendung von Umkehrfunktionen also zwingend erforderlich? Gibt es interessante Anwendungsgebiete für nicht-umgekehrte Funktionen?
What is the definition of Inc()? Min() and Max() are defined in the original dimension [e.g. °C],<BR />Inc() is not defined in this dimension - nor in the "internal dimension".
Das Einstellen des Tickabstands ist problematisch – wenn man die Achse etwas zu weit verschiebt, geht entweder die gesamte Teilung verloren oder es wird ein extremer Wert für Inc() erreicht.
Warum ist Inc() nicht über die grafische Benutzeroberfläche zugänglich?!
Umgehungslösung:
Ändern Sie Min/Max mit einem kleinen Bereich – dadurch wird Inc() reduziert. Verschieben Sie anschließend die Achse, um den Bereich zu vergrößern.
Die Temperaturanzeige verläuft von links nach rechts, das ist super!!! Kann ich neben der umgekehrten Reihenfolge auch die Skalierung auf Intern / Extern() ändern, sodass die Temperaturanzeige von rechts nach links verläuft?
Die Ausgleichskurve passt nicht?
Die Passform wird nach einer Änderung der Skalierung nicht automatisch aktualisiert.
Um das Update auszulösen, ändern Sie die Passformeinstellungen und stellen Sie die ursprünglichen Einstellungen wieder her:

Die Degradationsplattform bietet die gleichen praktischen Optionen zur Verwendung benutzerdefinierter Achsenskalen für die Anpassungen:
dt = Open( "$SAMPLE_DATA/Reliability/Device B.jmp" );
dt << run script ("Degradation");
Besser als Graph Builder:
Der Benutzer kann die Funktion und die Umkehrfunktion direkt in der grafischen Benutzeroberfläche eingeben:
