Certaines analyses nécessitent une échelle d'axe qui n'est pas disponible par défaut dans Graph Builder, comme les diagrammes d'Arrhenius avec la température représentée sous la forme 1/T [K].

Commençons par l'exemple tiré de l'index des scripts. Nous souhaitons générer manuellement un graphique logarithmique et en tirer des enseignements :
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 );
Il existe une fonction Échelle à interne() qui est utilisée pour appliquer la fonction log() à l'axe X, et une fonction Scale to External() qui est la fonction inverse.
Après avoir exécuté le code…
a) l'utilisateur obtient une échelle logarithmique sur l'axe X (à comparer avec l'échelle logarithmique par défaut sur l'axe Y) :
[Ajouter quelques points de données à 200, 500, ...]

... en outre:
b) L'échelle personnalisée apparaît dans le menu des axes

c) ... et l'utilisateur obtient l'accès à la racine cubique et à l'échelle de Johnson Su .
Par analogie avec l'exemple précédent, on peut utiliser
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>... pour représenter la température [°C] sur une échelle de 1/K :)</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>et avec</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 /> on obtient :</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>Questions :</P>
<UL>
<LI>Où puis-je trouver la documentation relative à cette fonctionnalité ?<BR /><BR /></LI>
<LI>the <FONT face="courier new,courier">Si()</FONT> in the <CODE class=" language-jsl">Scale To External functions can restrict the range.
further applications besides "make it work"?
J'ai remarqué une étrange interaction entre les fonctions Scale to Internal / External() lorsque les deux fonctions n'étaient pas inverses l'une de l'autre.
Est-il donc obligatoire d'utiliser des fonctions inverses ? Existe-t-il des applications intéressantes pour les fonctions non inverses ?
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".
Ajuster l'espacement des graduations est problématique : déplacer l'axe un peu trop loin entraîne la perte de toutes les graduations ou un réglage extrême de Inc().
Pourquoi la fonction Inc() n'est-elle pas accessible via l'interface graphique ?!
Solution de contournement :
Modifiez les valeurs Min/Max avec une petite plage ; cela réduit Inc(). Ensuite, faites glisser l'axe pour augmenter la plage.
La température s'affiche de gauche à droite, c'est parfait ! Cependant, outre l'ordre inverse , puis-je également modifier Échelle interne/externe() pour que la température s'affiche de droite à gauche ?
La courbe d'ajustement ne correspond pas ?
Il n'y a pas de mise à jour automatique de l'ajustement après un changement d'échelle.
Pour déclencher la mise à jour, modifiez les paramètres d'ajustement et rétablissez les paramètres d'origine :

La plateforme de dégradation offre les mêmes options intéressantes pour utiliser des échelles d'axes personnalisées pour les ajustements :
dt = Open( "$SAMPLE_DATA/Reliability/Device B.jmp" );
dt << run script ("Degradation");
Mieux que Graph Builder :
L'utilisateur peut écrire la fonction et sa fonction inverse directement dans l'interface graphique :
