Comment définir la mise à l'échelle automatique des axes avec des scripts ?À l'aide de JMP 13, comment définir l'axe pour qu'il soit mis à l'échelle automatiquement à l'aide de commandes de script.
Un extrait du code du script montrant une simple variable en place pour le min et le max.
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 )}
),Objectif : autoriser quelque chose d'autre (utilisateur, script, autre) à définir spécifiquement l'axe (min et max) ou permettre à l'utilisateur de choisir "Auto".
La recherche dans les guides et les documents de référence montre qu'il peut être défini sur une valeur numérique, mais ne documente aucune fonctionnalité de mise à l'échelle automatique.J'espérais que passer "Auto", un point ou un autre symbole fonctionnerait, mais ce n'est pas le cas.
De plus, il n'est pas possible de laisser de côté les lignes de réglage min et max pour obtenir la mise à l'échelle automatique, car cela va à l'encontre de l'objectif consistant à permettre à quelque chose de définir la valeur.
Merci pour l'aide d'avance.
Re : Comment définir la mise à l'échelle automatique des axes avec des scripts ?excuses, mais j'ai changé les variables d'Axis_min en A. Juste au cas où quelqu'un ne suivrait pas le document initialRe : Comment définir la mise à l'échelle automatique des axes avec des scripts ?La solution consiste à utiliser la fonction Revert Axis.Cependant, pour créer un script, cela nécessite une aide supplémentaire.
La clé est de vérifier la variable utilisée dans le réglage de l'axe pour voir si c'est un nombre.Si ce n'est pas le cas, JMP renvoie une valeur manquante. {voir le guide de script, page 68, chapitre 3, sous Fonctions de personnage. } Cela permet de vérifier autre chose qu'un nombre pour réinitialiser l'axe à une mise à l'échelle automatique, ainsi que de transmettre une valeur à la fonction de script.
axisbox(2) est l'axe y et axisbox(1) est pour l'axe x.Le Report(gp) est le handle d’objet pour le graphique spécifique.
if( ( Is Missing(num( A )) | Is Missing(num( B )) ),
Report(gb)[axisbox(2)] << {Revert Axis}; // axisbox(2) is the y axis
);Cela fonctionne très bien.Merci pour l'aide
Re : Comment définir la mise à l'échelle automatique des axes avec des scripts ?Je suis d'accord. Cependant, avec une légère modification, je peux faire en sorte que cela fonctionne. Je publie les détails ci-dessous.Re : Comment définir la mise à l'échelle automatique des axes avec des scripts ?Je pense que si vous supprimez l'argument Envoyer au rapport(), vous ne forcerez pas les paramètres d'axe spécifiques et JMP mettra automatiquement à l'échelle l'axe. Cet argument est utilisé pour répliquer les paramètres lorsque vous enregistrez un script. Autrement, cela serait inutile. L'idée de Jim est la bonne solution lorsque des paramètres spécifiques ont été imposés, mais la suppression de cette partie du script rendra cette étape supplémentaire inutile.
Envoyer vers Report() n'est pas la méthode recommandée pour scripter des objets. Envoyez plutôt des messages à l’objet cible.
Re : Comment définir la mise à l'échelle automatique des axes avec des scripts ?Je pense que ce que vous souhaitez utiliser, c'est le message Revert Axis.Il rétablit l'axe sur ce qu'il calcule automatiquement pour une plate-forme donnée.
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;