Ich weiß nicht, ob dies die Lösung sein wird, aber versuchen Sie es An Fenster anpassen aus.

Graph Builder(
Size( 457, 479 ),
Fit to Window( "Off" ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
Vollständige Offenlegung: Ich bin ein größerer Fan der älteren Routinen zum Zeichnen von Diagrammen in JSL als von Graph Builder, aber ich unternehme einige ernsthafte Versuche, umzusteigen.
Ich habe ein Problem, wenn ich dynamisch Diagramme zu einem Journal hinzufüge und versuche, die Diagrammgrößen sehr genau zu steuern, damit Achsen und Werte horizontal ausgerichtet sind. Ich erstelle in JSL eine H-Liste mit mehreren Elementen, sende diese H-Liste an das Journal und mache dann dasselbe mit einem anderen Parameter. Wenn ich jedoch Graph Builder verwende, scheinen die Größenattribute vollständig ignoriert zu werden und alle GraphBuilder enden in scheinbar 300 x 300 Pixeln. Wenn ich die Diagramme über andere Grafikwege erstelle (Variabilitätsdiagramme, Kontrolldiagramme, Overlay-Diagramme), passiert dies einfach nicht. Es funktioniert.
Ich habe versucht, dies anders anzugehen, und habe einen Testcode erstellt, um genau dasselbe Hinzufügen der H-Listenbox zu einem neuen Fenster anstelle des Journals durchzuführen, und alles funktioniert wie erwartet. Sehen Sie sich das Bild unten mit der falschen Journal-Ausgabe links und der richtigen „Neues Fenster“-Ausgabe rechts an. Weiß jemand, was hier mit dem Journal los ist und welche Schritte zur Abhilfe unternommen werden müssen?

Windows JMP 14.2
Beispiel-Testcode mit der Beispieldatentabelle der Big Class.
//Uses BigClass example data
// Create array of parameters
ParameterArray = {"height", "weight"};
numbatches = nrows(Current Data Table());
wind = New Window( "Example");
// Loop through parameters
for (i = 1, i <= N Items(ParameterArray),i++,
ColName = ParameterArray[i];
// Create charts
xBox = H List Box ();
xBox << append( gbbp = Graph Builder(
Size( 150, 300 ),
Show Control Panel( 0 ),
Variables( Y( Column( ColName ) ), Overlay( :sex ) ),
Elements( Box Plot( Y, Legend( 2 ) ) ),
SendToReport(
Dispatch(
{},
ColName,
ScaleBox,
{Label Row( {Major Grid Line Color( -14277081 ), Show Major Grid( 1 )} )
}
),
Dispatch( {}, "400", LegendBox, {Set Title( "" )} )
)
);
);
xBox << append( gb = Graph Builder(
Size( 900, 300 ),
Show Control Panel( 0 ),
Legend Position( "Inside Left" ),
Variables( X( :age ), Y( Column( ColName ) ), Overlay( :sex ) ),
Elements( Line( X, Y, Legend( 32 ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( ColName || " Chart" )}
),
Dispatch(
{},
"graph title",
TextEditBox,
{Set Text( ColName || " Chart" )}
),
Dispatch( {}, "400", LegendBox, {Sides( "Left" )} )
)
);
);
// Save to journal
xBox << journal;
wind << append(xBox);
);
Hallo
Ich bin gerade darauf gestoßen, als ich versuchte, mehrere Boxplots mit anderem Zeug in einen Bericht einzufügen. Zumindest bin ich nicht der Einzige!
Wurde das jemals behoben? Ist es ein Fehler oder ein Feature?
Wie geht das, was Sie getan haben („ein Fenster erstellen und es dann an das Journal senden“)?
Ich habe Schwierigkeiten, mit JSL klarzukommen, da es anscheinend ein bisschen anders ist als alle anderen Sprachen, die ich verwendet habe, und ich habe nicht die Zeit, es gründlich zu verstehen.
Gibt es eine Möglichkeit, ein Boxplot zu erstellen, ohne den Graph Builder zu verwenden?
Ich kämpfe auch mit der Dokumentation, was nicht gerade hilfreich ist!
Danke
John
Ich denke, der Hauptgrund für das Größenproblem ist, dass die Berichte zum Zeitpunkt ihrer Aufzeichnung nicht Teil eines Fensters sind. Dies sollte wahrscheinlich als Fehler betrachtet werden und ich werde es melden, aber eine Möglichkeit, dies zu umgehen, besteht darin, die Befehle zum Hinzufügen der Berichte zum Fenster und zum Speichern des Journals einfach neu anzuordnen:
// Add reports to window
wind << append(xBox);
// Save to journal
xBox << journal;
Hoffentlich hilft das,
-Und