Non so se questa sarà la soluzione ma prova a girare Adatta alla finestra spento.

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 ) ) )
);
A dire il vero, sono più un fan delle vecchie routine di tracciamento dei grafici in JSL che di Graph Builder, ma sto facendo qualche tentativo onesto per cambiare.
Sto riscontrando un problema in cui aggiungo dinamicamente grafici a un Journal e cerco di controllare molto attentamente le dimensioni dei grafici in modo che assi e valori siano allineati orizzontalmente. Sto creando una H List Box in JSL con diversi elementi, inviando quella H List Box al Journal e quindi facendo la stessa cosa su un altro parametro. Tuttavia, quando uso Graph Builder, gli attributi Size sembrano essere completamente ignorati e tutti i GraphBuilder finiscono in quello che sembra essere 300x300px. Quando creo i grafici tramite altri percorsi grafici (grafici di variabilità, grafico di controllo, grafico di sovrapposizione), questo semplicemente non accade. Funziona.
Ho provato a procedere in modo diverso e ho creato un codice di prova per aggiungere esattamente la stessa H List Box a una nuova finestra invece che al Journal e tutto funziona come previsto. Guarda l'immagine qui sotto con l'output Journal non corretto a sinistra e l'output "New Window" corretto a destra. Qualcuno sa cosa sta succedendo qui con il Journal e quali misure devono essere adottate per mitigare il problema?

Windows JMP 14.2
Esempio di codice di test utilizzando la tabella dati di esempio 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);
);
CIAO
Mi sono appena imbattuto in questo, cercando di inserire diversi box plot in un rapporto con altre cose. Almeno non sono solo io!
Il problema è mai stato risolto? È un bug o una funzionalità?
Come fare quello che hai fatto ("costruisci una finestra e poi inviala al diario")?
Faccio fatica ad andare avanti con JSL perché sembra essere... un po' diverso da qualsiasi altro linguaggio che ho usato, e non ho tempo da dedicare a comprenderlo tutto in modo approfondito.
Esiste un modo per creare un box plot che non coinvolga il Costruttore di grafici?
Lottando anche con la documentazione, il che non aiuta!
Grazie
John
Penso che il motivo principale del problema del dimensionamento sia che i report non fanno parte di una finestra nel momento in cui vengono inseriti nel journal. Questo dovrebbe probabilmente essere considerato un bug e lo segnalerò, ma un modo per aggirare il problema è semplicemente riordinare i comandi per aggiungere i report alla finestra e salvare il diario:
// Add reports to window
wind << append(xBox);
// Save to journal
xBox << journal;
Spero che aiuti,
-E