Comment référencer dynamiquement l'axe y d'une zone d'échelle dans Graph Builder à l'aide de JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ou n’importe où d’ailleurs.
J'écris une fonction qui génère des graphiques spécialisés pour le travail. Je fais quelques dessins supplémentaires sur la toile et j'ai besoin que le graphique soit réajusté sur l'axe y pour que tout s'y adapte. Je peux y parvenir en obtenant le maximum et le minimum de chaque point que je trace et en les définissant (+/- 5 %) comme limites supérieure et inférieure. Cependant, pour que les modifications prennent effet, je dois appeler l'étiquette de l'axe. J'ai essayé les numéros d'index. J'ai essayé de stocker le nom sous forme de variable et d'appeler la variable. Aucune de mes tentatives ne semble fonctionner et la documentation n'est pas complète sur ce sujet.
Exemple:
Dans le générateur de graphiques et envoyer au rapport, j'ai :
| | Expédition({}, |
| | | "Le nom de l'axe", |
| | | ScaleBox, |
| | | {Format( "Déc fixe", 15, 0 ), Min( llim ), Max( ulim ), |
| | | Inc( 1 ), Tiques mineures( 1 )} |
| | ), |
Pour que cela fonctionne dans une fonction, je dois actuellement coder en dur le nom. J'aimerais qu'il se mette à jour dynamiquement, quel que soit le graphique que je trace.
Quelque chose à l'effet de
| | Expédition({}, | |
| | | l'axe Y, |
| | | ScaleBox, |
| | | {Format( "Déc fixe", 15, 0 ), Min( llim ), Max( ulim ), |
| | | Inc( 1 ), Tiques mineures( 1 )} |
| | ), | |
C'est ce que je recherche.
Re : Comment référencer dynamiquement l'axe y d'une zone d'échelle dans Graph Builder à l'aide de JSLPour faire suite à l'exemple de Jim, vous pouvez utiliser XPath() pour obtenir une liste de tous les AxisBox du rapport.Ensuite, vous pouvez parcourir la liste en apportant les modifications souhaitées, le cas échéant.Ce qui suit montre XPath() puis sélectionne simplement chaque axe dans une boucle For.
/* Obtient une liste de toutes les AxisBox dans le rapport */
gbAxis = Rapport ( go ) << XPath ( "//AxeBox" ) ;
/* Parcourez chacun pour voir à quel axe chacun fait référence */
Pour ( je = 1 , je <= N articles ( gbAxis ) , je ++,
gbAxis [ je ] << Sélectionner ;
Attendez ( 1 ) ;
) ;
J'espère que ça aide!
Wendy
Re : Comment référencer dynamiquement l'axe y d'une zone d'échelle dans Graph Builder à l'aide de JSLCela a parfaitement résolu mon problème. Merci Jim. Ma fonction est encore en cours de travail pour la rendre suffisamment générique pour être partagée, mais une fois que je l'aurai compris, je la publierai ici sur la communauté JMP une fois que je l'aurai rendue suffisamment générique.
Pour tous ceux qui se posent la question, je pense que mon problème est que j'essayais de faire référence au rapport dans le rapport, avant qu'il ne soit entièrement généré (même si je me trompe peut-être).
Re : Comment référencer dynamiquement l'axe y d'une zone d'échelle dans Graph Builder à l'aide de JSLVous posez une question intéressante concernant l'identification des axes dans Graph Builder.J'ai jeté un œil à la structure des axes utilisée par Graph Builder, et il semble y avoir une organisation que l'on peut utiliser.

Le graphique Graph Builder ci-dessus comporte un axe Y et plusieurs axes X.La structure des graphiques que j'ai essayés utilisait toujours l'axe 1 comme premier axe X et l'axe 2 et premier axe Y.Ainsi, en utilisant le code ci-dessous, même lorsque le type de graphique a été modifié, le numéro d'axe est resté le même.
Noms par défaut ici ( 1 ) ;
dt = ouvrir ( "$SAMPLE_DATA/capacité de semi-conducteur.jmp" ) ;
go = Générateur de graphiques (
Taille( 593 , 526 ) ,
Afficher le panneau de configuration ( 0 ) ,
Variables(X( : PNP1) , Oui( : NPN1 ) , Groupe X( : SITE ) ) ,
Éléments( Points( X , Oui , Légende( 5 ) ) , Plus lisse (X , Oui , Légende( 6 ) ) )
) ;
rapport (gb)(Boîte d'Axe( 1 )] << min ( 150 ) ;
La référence Axis Box (2) modifierait l’axe Y.
Il y a aussi les cases des axes 3, 4, 5 et 6, qui sont les 5 autres axes X affichés.

Cet exemple a ajouté une deuxième variable à l'axe Y, cependant, la boîte d'axe (1) est toujours le premier axe X, la boîte d'axe (2) est l'axe Y de la colonne supérieure, "PNP4", tandis que la boîte d'axe ( 3) est l'axe Y de la colonne "NPN1".
Noms par défaut ici ( 1 ) ;
dt = ouvrir ( "$SAMPLE_DATA/capacité de semi-conducteur.jmp" ) ;
FR = Générateur de graphiques (
Taille( 593 , 526 ) ,
Afficher le panneau de configuration ( 0 ) ,
Variables(X( : PNP1) , Oui( : PNP4) , Oui( : NPN1 ) , Groupe X( : SITE ) )) ;
Si vous cliquez avec la souris sur le triangle d'expansion gris et sélectionnez
Edit==>Afficher l'arborescence
vous devriez être en mesure de déterminer la structure de la boîte d'axe pour les graphiques que vous utilisez et serez en mesure de déterminer par programme comment référencer la bonne boîte d'axe
Re : Comment référencer dynamiquement l'axe des Y d'une boîte d'échelle dans Graph Builder à l'aide de JSLAprès avoir eu accès aux objets d'axe individuels, la tâche suivante consiste à déterminer quel axe appartient à quel « axe ».
Le premier axe est-il l'axe x ou l'axe y ?
Et qu'en est-il des autres types de tracés ? La même logique s'applique-t-elle aux boîtes de création de graphiques et aux boîtes graphiques ?
S'il vous plaît, jetez un oeil à ce souhait :
Facilitez l'obtention des résultats des rapports via JSL
En plus d'obtenir des résultats à partir du rapport , on pourrait également simplifier la manière d' ajuster un rapport.
La commande Expédition est bien équipée : on peut utiliser directement des informations telles que « titre X » pour contrôler où le message est envoyé :
SendToReport( Dispatch( {}, "X title", TextEditBox, {Set Text( "xxx" )} ) )
Pour XPath , cela ne semble pas encore possible...