Sheetbox dans une boucle for?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'ai essayé de créer un affichage en utilisant des boîtes de feuilles et ça ne va pas bien.
J'utilise une boucle for pour créer un affichage et j'utilise les commandes "hsheetbooxname << append". .
mais ne pas le faire correctement. Dans cet exemple simple ci-dessous. . Quelqu'un peut-il
montrez-moi comment convertir ceci en type où vous ouvrez une zone de feuille vide. .
puis ajouter dans les différents objets? La commande << Hold m'a laissé perplexe.
dt = Open ("$ ENGLISH_SAMPLE_DATA / Big Class.jmp");
dt << minimise la fenêtre ();
NewWindow ("Exemple",
VSheetBox (
<< Hold (Bivarié (Y (: poids), X (: hauteur), FitLine ())),
<< Suspendre (Distribution (Distribution continue (Colonne (: hauteur), Mise en forme horizontale (1), Diagramme en boîte (0)))))
<< Tenir (Carte de l'arbre (Catégories (: age))),
<< Tenir (diagramme à bulles (X (: hauteur), Y (: poids), tailles (: âge), coloriage (: sexe), taille du cercle (6.226), toutes les étiquettes (0))),
HSheetBox (
SheetPart ("", ExcerptBox (1, {PictureBox (1)})),
SheetPart ("", ExcerptBox (2, {PictureBox (1)}))
),
HSheetBox (
SheetPart ("", ExcerptBox (3, {PictureBox (1)})),
SheetPart ("", ExcerptBox (4, {PictureBox (1)}))
)
)
)
Re: sheetbox dans une boucle?Si vous voulez journaliser la fenêtre contenant la feuille, oui, je peux l'enregistrer dans un journal à la fois manuellement et par script. La boîte d'affichage vsb peut également être journalisée directement. Testé avec JMP 9 et 10 pour Mac.
Re: sheetbox dans une boucle?MME,
Dans l'exemple ci-dessus, pouvez-vous enregistrer le journal?
Je reçois une exception jmp quand je le fais.
Brad
Re: sheetbox dans une boucle?Merci! La boîte d'espacement conditionnelle est juste comique. Il ajoute des cases vides à la fin si le nombre de graphiques ne correspond pas à la matrice de présentation. Cela fonctionne sans cette fonctionnalité, mais tous les graphiques de fin sont ensuite automatiquement redimensionnés pour remplir la boîte à feuilles, ce qui peut paraître moche.
Pour moi, l’apprentissage de la JSL s’est beaucoup passé par tâtonnements. De nombreuses heures ont été consacrées à la recherche de solutions de contournement élaborées pour des tâches (mal documentées) qui "devraient" fonctionner mais ne fonctionnent pas. Plus tard, je trouve souvent un moyen beaucoup plus simple, par exemple sur ce forum. Bonne chance!
Re: sheetbox dans une boucle?Sensationnel. Votre exemple de boucle for est excellent et proche de ce que j'essaie de faire. Le vôtre est beaucoup plus élégant que le mien. Humiliation. Je vais devoir étudier le vôtre
soigneusement. Mon cerveau écrit toujours des expressions de base et évalue des expressions de base. . J'ai besoin de ce concept pour cliquer pour passer au niveau suivant.
Je vous remercie.
Re: sheetbox dans une boucle?Merci MS .. cela a fonctionné parfaitement et m'a évité plus de frustration avec cet obstacle.
Mon plus gros projet contient en fait des expressions de substitution utilisant une liste de colonnes. Je vais voir si je peux appliquer cet apprentissage à cela.
Je vous ferai savoir comment ça se passe. J'appelle peut-être à nouveau.
Re: sheetbox dans une boucle?J'ai essayé de construire une boîte à feuilles avec une boucle for et suis venu avec ce code. Il est adapté pour collecter les graphiques d'un rapport avec un nombre arbitraire (> 1) de sous-groupes, c'est-à-dire plusieurs graphiques similaires pour différents sous-groupes dans la même fenêtre. Mais le principe devrait pouvoir s’adapter à n’importe quelle collection d’objets. Btw, essayez de changer Picture Box (1) à Table Box (1) ou Listbox (1).
// Script permettant de collecter des graphiques à partir d'un rapport avec des groupes secondaires
dt = Ouvrir ( "$ ENGLISH_SAMPLE_DATA / Big Class.jmp" ) ;
par_colonne = Colonne ( "âge" ) ;
objexpr = Expr ( Bivarié ( Y ( : poids ) , X ( : la taille ) , FitLine () , par ( par_colonne ) ) ) ;
// quelques maths pour définir la mise en page
Résumer ( g = par ( par_colonne ) ) ;
nobj = N articles ( g ) ;
rangées = Sol ( Sqrt ( nobj ) ) ;
cols = Plafond ( nobj / rangées ) ;
// Installer les panneaux
vsb = V Sheet Box ( << tenir ( objexpr ) ) ;
HSheetBoxes = {} ;
Pour ( je = 1 , je <= rangées , je ++,
Insérer dans ( HSheetBoxes , Boîte à feuilles H () ) ;
vsb << ajouter ( HSheetBoxes [ je ] ) ;
) ;
// Remplir avec des éléments de rapports
Pour ( je = 1 , je <= rangées * cols , je ++,
Si ( je <= nobj ,
HSheetBoxes [ Plafond ( je / cols )] << ajouter (
Partie de feuille ( par_colonne << obtenir un nom || "=" || g [ je ] , Extrait de boîte ( je , { Boîte d'image ( 1 )} ) )
) ,
HSheetBoxes [ Plafond ( je / cols )] << ajouter ( Boîte d'espacement () )
)
) ;
// Faire une fenêtre
Nouvelle fenetre ( nom de tête ( objexpr ) , vsb ) ;
Re: sheetbox dans une boucle?Presque là. Il semble que Hold () fonctionne avec l'expression plutôt qu'avec l'objet plate-forme.
Essayez de redéfinir votre g comme ceci:
g1 = expr ( Bivarié ( Y ( : poids ) , X ( : la taille ) , FitLine ())) ;
g2 = expr ( Distribution ( Colonne ( : la taille ) , Mise en page horizontale ( 1 ) , Boîte à moustaches ( 0 ))) ;
g3 = expr ( Carte de l'arbre ( Les catégories ( : âge ))) ;
g4 = expr ( Bulle parcelle ( X ( : la taille ) , Y ( : poids ) , Tailles ( : âge ) , Coloration ( : sexe ) , Taille du cercle ( 6.226 ) , Tous les labels ( 0 ))) ;
Re: sheetbox dans une boucle?Voici plus du format que je cherche. . celui-ci ne fonctionne pas.
Je dois appliquer la logique à un projet de tôle beaucoup plus grand sur lequel je travaille.
dt = Open ("$ ENGLISH_SAMPLE_DATA / Big Class.jmp");
dt << minimise la fenêtre ();
w = NewWindow ("Nouvel exemple", vsb = Vsheetbox ());
g1 = dt << Bivarié (Y (: poids), X (: hauteur), FitLine ());
g2 = dt << Distribution (colonne (: hauteur), disposition horizontale (1), boîte à moustaches (0));
g3 = dt << Carte de l'arbre (Catégories (: âge));
g4 = dt << Diagramme à bulles (X (: hauteur), Y (: poids), tailles (: âge), coloration (: sexe), taille du cercle (6.226), toutes les étiquettes (0));
vsb << Hold (g1);
vsb << Hold (g2);
vsb << Hold (g3);
vsb << Hold (g4);
sp1 = SheetPart ("platform1", ExcerptBox (1, {PictureBox (1)}));
sp2 = SheetPart ("platform2", ExcerptBox (2, {PictureBox (1)}));
hsb1 = HSheetBox ();
hsb1 << append (sp1);
hsb1 << append (sp2);
vsb << append (hsb1);
sp3 = SheetPart ("platform3", ExcerptBox (3, {PictureBox (1)}));
sp4 = SheetPart ("platform4", ExcerptBox (4, {PictureBox (1)}));
hsb2 = HSheetBox ();
hsb2 << append (sp3);
hsb2 << append (sp4);
vsb << append (hsb2);
w << Amener la fenêtre au premier plan;
w << rafraîchir;