Aggiornamento dell'istruzione Element di Graph BuilderCiao, voglio cambiare lo stile del grafico a scatola e baffi di Graph Builder in un grafico di punti all'interno di uno script JSL. Il Costruttore di grafici include inizialmente un'istruzione Elements simile a questa:
Elements( Box Plot( Y, Legend( 9 ) ) ),
Voglio quindi modificare tale dichiarazione all'interno di JSL per:
Elements( Points( Y, Legend( 9 ) ) ),
Ho trovato i comandi << Aggiungi elemento, << Aggiorna elemento e << Rimuovi elemento per GraphBuilderBox all'interno dell'indice di scripting, ma non riesco a capire come applicarli per ottenere l'effetto desiderato. L'esempio fornito nell'indice (aggiungendo una linea di regressione) non si riferisce direttamente alla mia situazione, ma immagino di aver bisogno di qualcosa Piace quanto segue, dove gb è il mio oggetto Graph Builder:
report(gb)[GraphBuilderBox(1)] << Update Element(1, 1, 1, {Type("Points"), Y})
Questo evidentemente non è giusto, quindi ho solo bisogno di un esempio per mostrarmi quale dovrebbe essere la sintassi corretta. Qualcuno può aiutarmi con questo, per favore?
Grazie molto.
Ri: Aggiornamento dell'istruzione Element di Graph BuilderPuò essere poco elegante, ma funziona - e alla fine è tutto ciò che conta!
Grazie molto.
Ri: Aggiornamento dell'istruzione Element di Graph BuilderVedo solo qual è il tuo problema ora. Poiché stai utilizzando un raggruppamento X e non una variabile X effettiva, l'indicizzazione degli elementi non è standard. Come da documenti:
obj << Get Element(xposition, yposition, i )
Ma, con un raggruppamento X, piuttosto che una X, sembra che il primo elemento non sia accessibile con (1,1,1), (0,1,1), (.,1,1) o qualsiasi altra cosa ho provato.Quindi, ecco cosa mi è venuto in mente: definisci temporaneamente una variabile X in modo da poter accedere all'elemento, quindi rimuovi la variabile X dopo aver apportato le modifiche necessarie. Lo trovo del tutto inelegante, ma funziona. Proverò a scoprire se esiste un modo corretto per accedere agli elementi quando non è definita alcuna X, quindi non è necessaria questa soluzione alternativa.
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables( Y( :height ), Group X( :sex ) ),
Elements( Box Plot( Y, Legend( 10 ) ) )
);
wait( 1 );
gbb = Report( gb )[Graph Builder Box( 1 )];
//define an X temporarily
gbb << Add Variable( {:age, Role( "X" )} );
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});
//remove the X
gbb << Remove Variable( {:age, Role( "X" )} );
Ri: Aggiornamento dell'istruzione Element di Graph BuilderCiao Giuliano,
Sono più vicino a capire il problema ora, ma sfortunatamente non ci sono ancora del tutto.La differenza tra la mia situazione e il tuo esempio è che sto usando una variabile di raggruppamento discreta invece di una variabile X continua: la seguente variazione del tuo script illustra il problema:
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Variables( Y( :height ), Group X( :sex ) ),
Elements( Box Plot( Y, Legend( 10 ) ) )
);
wait( 1 );
gbb = Report( gb )[Graph Builder Box( 1 )];
// How do I modify the following two lines to replace the Box Plot above by Points?
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});
Se puoi mostrarmi come modificare le ultime due righe, il problema sarà risolto.
Ri: Aggiornamento dell'istruzione Element di Graph BuilderCIAO @DMR ,
Update Element() cambierà le proprietà di un elemento esistente, ma per quanto ne so non ti permetterà di cambiare il tipo di elemento che è. Prova a eliminare l'elemento esistente e ad aggiungerne uno nuovo. Esempio sotto.
Spero che questo ti aiuti!
@giuliano
Open("$SAMPLE_DATA/Big Class.jmp");
gb = Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Box Plot( X, Y, Legend( 4 ) ) )
);
Wait(1);
gbb = Report( gb )[Graph Builder Box( 1 )];
gbb << Remove Element(1, 1, 1);
gbb << Add Element(1, 1, {Type( "Points" ), X, Y, Legend( 5 )});