Sheetbox in einer for-Schleife?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ich habe versucht, eine Anzeige mit Blattboxen zu erstellen, und es läuft nicht gut.
Ich verwende eine for-Schleife, um eine Anzeige zu erstellen, und verwende "hsheetbooxname << append" -Befehle. .
aber es nicht richtig machen. In diesem einfachen Beispiel weiter unten. . kann jemand
zeige mir, wie ich das in einen Typ konvertieren kann, bei dem Sie eine leere Blattbox öffnen. .
dann in den verschiedenen Objekten anhängen? Der << Hold-Befehl hat mich verblüfft.
dt = Open ("$ ENGLISH_SAMPLE_DATA / Big Class.jmp");
dt << Fenster minimieren ();
NewWindow ("Beispiel",
VSheetBox (
<< Halten (Bivariate (Y (: Gewicht), X (: Höhe), FitLine ())),
<< Halten (Verteilung (Fortlaufende Verteilung (Spalte (: Höhe), Horizontales Layout (1), Plot für Ausreißer (0)))))
<< Halten (Baumstruktur (Kategorien (: Alter))),
<< Halten (Blasendiagramm (X (: Höhe), Y (: Gewicht), Größen (: Alter), Färbung (: Geschlecht), Kreisgröße (6.226), Alle Labels (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 in einer for-Schleife?Wenn Sie "Journal the Window" als Blatt für die Sheetbox bezeichnen möchten, kann ich es in einem Journal sowohl manuell als auch per Skript speichern. Die Displaybox vsb kann auch direkt im Journal erfasst werden. Getestet mit JMP 9 und 10 für Mac.
Re: sheetbox in einer for-Schleife?FRAU,
Können Sie dies in Ihrem Sheetbox-Beispiel oben als Journal speichern?
Ich bekomme eine jmp-Ausnahme, wenn ich dies tue.
Brad
Re: sheetbox in einer for-Schleife?Vielen Dank! Das bedingte Spacer-Box-Ding ist einfach komisch. Sie fügt am Ende leere Kästchen hinzu, wenn die Anzahl der Diagramme nicht zur Layoutmatrix passt. Es funktioniert ohne diese Funktion, aber alle nachfolgenden Diagramme werden dann automatisch in der Größe angepasst, um die Sheetbox zu füllen, die möglicherweise unschön aussieht.
Für mich war das Erlernen von JSL viel Ausprobieren. Viele Stunden, um aufwändige Workarounds für (schlecht dokumentierte) Dinge zu finden, die "funktionieren" sollen, aber nicht funktionieren. Später finde ich oft einen viel einfacheren Weg, zB in diesem Forum. Viel Glück!
Re: sheetbox in einer for-Schleife?Beeindruckend. Ihr for-Loop-Beispiel ist großartig und nahe an dem, was ich versuche. Deiner ist viel eleganter als meiner. Demütigend Ich werde deine studieren müssen
vorsichtig. Mein Gehirn schreibt immer noch grundlegende Ausdrücke und wertet grundlegende Ausdrücke aus. . Ich muss dieses Konzept bekommen, um zum nächsten Level zu gelangen.
Vielen Dank.
Re: sheetbox in einer for-Schleife?Danke MS .. das hat perfekt funktioniert und mir mit dieser Hürde mehr Frustration erspart.
Mein größeres Projekt enthält tatsächlich einige Substitutionsausdrücke, die eine Spaltenliste verwenden. .wird sehen, ob ich dieses Lernen darauf anwenden kann.
Willst du wissen, wie es rauskommt? Ich kann wieder anrufen.
Re: sheetbox in einer for-Schleife?Ich habe versucht, eine Blattbox mit einer for-Schleife zu erstellen, und habe diesen Code gefunden. Sie können Diagramme aus einem Bericht mit einer beliebigen Anzahl von Nachgruppen (> 1) sammeln, dh mehrere ähnliche Diagramme für verschiedene Untergruppen innerhalb desselben Fensters. Das Prinzip sollte jedoch an jede Sammlung von Objekten angepasst werden können. Übrigens, ändern Sie Picture Box (1) in Table Box (1) oder Listbox (1).
// Skript zum Sammeln von Diagrammen aus einem Bericht mit Nachgruppen
dt = Öffnen ( "$ ENGLISH_SAMPLE_DATA / Big Class.jmp" ) ;
by_column = Säule ( "Alter" ) ;
objexpr = Ausdruck ( Bivariate ( Y ( : Gewicht ) . X ( : Höhe ) . FitLine () . durch ( by_column ) ) ) ;
// etwas Mathe, um das Layout zu definieren
Zusammenfassen ( G = durch ( by_column ) ) ;
nobj = N Artikel ( G ) ;
Reihen = Fußboden ( Sqrt ( nobj ) ) ;
Cols = Decke ( nobj / Reihen ) ;
// Die Panels einrichten
vsb = V Sheet Box ( << halt ( objexpr ) ) ;
HSheetBoxes = {} ;
Zum ( ich = 1 . ich <= Reihen . ich ++
Einfügen in ( HSheetBoxes . H Blattkasten () ) ;
vsb << anhängen ( HSheetBoxes [ ich ] ) ;
) ;
// Mit Elementen aus Berichten füllen
Zum ( ich = 1 . ich <= Reihen * Cols . ich ++
Ob ( ich <= nobj .
HSheetBoxes [ Decke ( ich / Cols )] << anhängen (
Blattteil ( by_column << Name bekommen || "=" || G [ ich ] . Auszugskiste ( ich . { Bilderkiste ( 1 )} ) )
) .
HSheetBoxes [ Decke ( ich / Cols )] << anhängen ( Spacer Box () )
)
) ;
// Fenster erstellen
Neues Fenster ( Kopfname ( objexpr ) . vsb ) ;
Re: sheetbox in einer for-Schleife?Fast dort. Es scheint, als würde Hold () mit dem Ausdruck und nicht mit dem Plattformobjekt arbeiten.
Versuche deine Gs so neu zu definieren:
g1 = Ausdruck ( Bivariate ( Y ( : Gewicht ) . X ( : Höhe ) . FitLine ())) ;
g2 = Ausdruck ( Verteilung ( Säule ( : Höhe ) . Horizontales Layout ( 1 ) . Ausreißer Box Plot ( 0 ))) ;
g3 = Ausdruck ( Baumkarte ( Kategorien ( : Alter ))) ;
g4 = Ausdruck ( Blasendiagramm ( X ( : Höhe ) . Y ( : Gewicht ) . Größen ( : Alter ) . Färbung ( : Sex ) . Kreisgröße ( 6,226 ) . Alle Labels ( 0 ))) ;
Re: sheetbox in einer for-Schleife?Hier ist mehr von dem Format, nach dem ich suche. . dieser funktioniert nicht.
Ich muss die Logik auf ein viel größeres Sheetbox-Projekt anwenden, an dem ich gerade arbeite.
dt = Open ("$ ENGLISH_SAMPLE_DATA / Big Class.jmp");
dt << Fenster minimieren ();
w = NewWindow ("Neues Beispiel", vsb = Vsheetbox ());
g1 = dt << Bivariate (Y (: Gewicht), X (: Höhe), FitLine ());
g2 = dt << Verteilung (Spalte (: Höhe), horizontales Layout (1), Outlier Box Plot (0));
g3 = dt << Baumkarte (Kategorien (: Alter));
g4 = dt << Blasendiagramm (X (: Höhe), Y (: Gewicht), Größen (: Alter), Färbung (: Geschlecht), Kreisgröße (6,226), Alle Labels (0));
vsb << Halten (g1);
vsb << Halten (g2);
vsb << Halten (g3);
vsb << Halten (g4);
sp1 = SheetPart ("platform1", ExcerptBox (1, {PictureBox (1)}));
sp2 = SheetPart ("Plattform2", 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 << Fenster nach vorne bringen;
w << Refresh;