Senso UnicoIl mio script ha una lista di valori Y da tracciare. Ho una finestra di dialogo per selezionare le colonne "X" e "By" per il grafico OneWay. Voglio quindi formattare le impostazioni dell'asse, ma nomina i grafici "Analisi su asse di Y1" seguito con la colonna dell'asse X, ad esempio "Per wafer", e quindi il valore By, ad esempio "Lotto = 1234" ... . in totale sarebbe "Analisi su strada di Y1 di Wafer Lot = 1234"
C'è un modo per farlo nella clausola Dispatch così posso automatizzare la formattazione degli assi?
list_y = { "Y1", "Y2" };
dlg = Column Dialog( x = ColList( "X", Max Col( 1 ) ));
if(dlg["Button"] == 1,
xCol = dlg["x"];);
dlg = Column Dialog( by = ColList( "By", Max Col( 7 ) ));
if(dlg["Button"] == 1,
byCol = dlg["by"]);
OneWay( Y( Eval( list_y ) ), X( Eval( xCol ) ), By( Eval( byCol ) ),
SendToReport(
Dispatch({"Oneway Analysis of Y1"},"1",ScaleBox,{Scale( "Log" ),Format( "Scientific", 12 ),Inc( 1 ),Minor Ticks( 8 ),Show Minor Grid( 1 ),Show Major Grid ( 1 )}),
Dispatch({"Oneway Analysis of Y2"},"1",ScaleBox,{Scale( "Log" ),Format( "Scientific", 12 ),Inc( 1 ),Minor Ticks( 8 ),Show Minor Grid( 1 ),Show Major Grid ( 1 )})
));Ri: OneWayUsa xpath per selezionare tutti gli oggetti Oneway, quindi invia il messaggio Dispatch a tutti loro in una volta. Non ho i tuoi dati, ma ha funzionato magnificamente sui dati della Big Class nella libreria di dati di esempio, anche se disponi di una variabile By. Questo * dovrebbe * funzionare direttamente:
list_y = {"Y1", "Y2"};
dlg = Column Dialog( x = ColList( "X", Max Col( 1 ) ) );
If( dlg["Button"] == 1,
xCol = dlg["x"]
);
dlg = Column Dialog( by = ColList( "By", Max Col( 7 ) ) );
If( dlg["Button"] == 1,
byCol = dlg["by"]
);
//Name the oneway analysis object 'tmp'
tmp = OneWay( Y( Eval( list_y ) ), X( Eval( xCol ) ), By( Eval( byCol ) ) );
//get the window containing the one-way analysis
win = tmp << report;
//Select all the oneway objects and alter all the y-axes
(win << xpath( "//OutlineBox[@helpKey='Oneway Report']" )) << Dispatch(
{},
"1",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Inc( 1 ), Minor Ticks( 8 ), Show Minor Grid( 1 ), Show Major Grid( 1 )}
);
Ecco un altro esempio con Big Class:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
win = (dt << Oneway( Y( {:height, :weight} ), X( :age ), By(:Sex) )) << Report;
(win << xpath( "//OutlineBox[@helpKey='Oneway Report']" )) << Dispatch(
{},
"1",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 12 ), Inc( 1 ), Minor Ticks( 8 ), Show Minor Grid( 1 ), Show Major Grid( 1 )}
);
Ri: OneWayGrazie! Questa è una funzionalità davvero interessante di cui non ero a conoscenza.
Nel mio codice, ho da 20 a 40 colonne da tracciare nella lista y, e hanno esigenze di formato dell'asse y diverse. La tua soluzione è perfetta per l'aggiornamento di tutti gli stessi formati, il metodo sottostante può prestarsi alla formattazione specifica dei singoli grafici?
Ri: OneWayÈ possibile utilizzare xpath per esaminare anche il titolo del riquadro del profilo per determinare quale risposta viene tracciata e quindi impostare in modo condizionale le impostazioni dell'asse per la risposta corrispondente. Questo diventa piuttosto peloso con 20-40 risposte potenziali.Ri: OneWayYou might find it easier to apply the formatting as part of the column properties in the data table, if you don't mind all plots (and the data table) using the same format for each column.