Ciao,
1. Voglio sapere come salvare due grafici in una diapositiva di ppt.
In questo momento il mio script sta salvando un grafico per diapositiva in ppt.
Devo confrontare due grafici in un'unica diapositiva. Inoltre, genero circa 100 grafici per i miei dati e avere 100 diapositive in ppt rende difficile l'analisi.
2. come ridimensionare i miei grafici individuali?
//******************Open Data table***********************//
dt = Open( "$Downloads\Measure - Subset of JA63025.10A_raw_para_Stacked.jmp" );
//************************ Create new Columns to segregate the test names to group and plot graphs ***********************//
dt << New Column( "Test Number (MSB of Label)",
Character,
Nominal,
Formula( Num( Substr( :Label, Contains( :Label, ":p" ) - Num( 10 ), Contains( :Label, ":p" ) - Num( 6 ) ) ) )
);
dt << New Column( "Test Description", Character, Nominal, Formula( Substr( :Label, Contains( :Label, ":NVM_" ) + Num( 5 ), 100 ) ) );
dt << New Column( "NVM Parameter Name",
Character,
Nominal,
Formula( Substitute/*###*/(Substr( :Label, Contains( :Label, ":NVM_" ) + Num( 5 ), 100 ), "[1]", "") )
);
dt << New Column( "Measurements.",
Character,
Nominal,
Formula(
If( 16600 <= :Name( "Test Number (MSB of Label)" ) <= 16603,
Substitute( :Test Description, "[1]", "_BiasA_Pre_refcell_Erase" ),
If( 16629 <= :Name( "Test Number (MSB of Label)" ) <= 16632,
Substitute( :Test Description, "[1]", "_BiasA_Post_refcell_Erase" )
)
)
)
);
dt << New Column( "Measurements..",
Character,
Nominal,
Formula( If( 10100 <= :Name( "Test Number (MSB of Label)" ) <= 10103, Substitute( :Test Description, "[1]", "" ) ) )
);
dt << New Column( "Measurements...",
Character,
Nominal,
Formula(
If( 10100 <= :Name( "Test Number (MSB of Label)" ) <= 10103,
Empty(),
If( 16600 <= :Name( "Test Number (MSB of Label)" ) <= 16603,
Empty(),
If( 16629 <= :Name( "Test Number (MSB of Label)" ) <= 16632,
Empty(),
Substitute( :Test Description, "[1]", "" )
)
)
)
)
);
//*******************Plot Variability Charts****************************//
dtsum = Current Data Table();
colnames = dtsum << get column names( character );
Show( colnames );
//nw = New Window( "Plots", myVLB = V List Box() );
New Window( "Graphs",
For( i = 23, i <= N Items( colnames ), i++, // We have change i value based on the column where our modified column to plot graphs starts
gb = Variability Chart(
invisible,
Y( :Data ),
Y Scale( Left, Right ),
X( Column( colnames[i] ) ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Vertical Charts( 0 ),
Variability Summary Report( 1 ),
Std Dev Chart( 0 ),
Mean of Std Dev( 0 ),
Show Box Plots( 1 ),
Mean Diamonds( 1 ),
By( :NVM Parameter Name ),
);
);
//myVLB << append( Report( gb ) );
);
//**********************************Save Script to Data Table ************************//
dt << New script(
"Plots",
For( i = 23, i <= N Items( colnames ), i++, // We have change i value based on the column where our modified column to plot graphs starts
Variability Chart(
//invisible,
Y( :Data ),
Y Scale( Left, Right ),
X( Column( colnames[i] ) ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Vertical Charts( 0 ),
Variability Summary Report( 1 ),
Std Dev Chart( 0 ),
Mean of Std Dev( 0 ),
Show Box Plots( 1 ),
Mean Diamonds( 1 ),
By( :NVM Parameter Name ),
);
)
);
//*****************************************EXPORT GRAPHS TO PPT**********************************//
For( i = 23, i <= N Items( colnames ), i++, // We have change i value based on the column where our modified column to plot graphs starts
nn = dt << Variability Chart(
invisible,
Y( :Data ),
Y Scale( Left, Right ),
X( Column( colnames[i] ) ),
By( :NVM Parameter Name ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Vertical Charts( 0 ),
Variability Summary Report( 0 ),
Std Dev Chart( 0 ),
Mean of Std Dev( 0 ),
Show Box Plots( 1 ),
Mean Diamonds( 1 ),
);
If( i == 23,
nn << Save Presentation( "$Downloads/jmp_example2.pptx" ),
nn << Save Presentation( "$Downloads/jmp_example2.pptx", Append )
);
);
Open( "$Downloads/jmp_example2.pptx" );
La chiave di ciò è che tutte le caselle di contorno che si trovano all'interno della casella di contorno devono essere copiate come un'unica immagine. Devi creare la pagina desiderata utilizzando la struttura di cui hai bisogno e il passaggio finale consiste nell'aggiungere la pagina desiderata utilizzando << ottieni immagine, nella casella di riepilogo in cui stai per << Salva presentazione da.
In realtà penso che la funzionalità sia già presente.Uso Outline Boxes per la maggior parte del tempo come SlideBox().Costruisco solo gli output quando ne ho bisogno, quindi li metto in una Outline Box() e poi li aggiungo al Journal che sto costruendo.Viene scelto Outline Box(), a causa del modo in cui JMP gestisce i contorni con i file pptx.Il titolo Outline Box() diventa il titolo della diapositiva e l'"immagine" che ho inserito nella outline box() diventa il contenuto della diapositiva.
Sì, potrebbero esserci alcuni valori predefiniti impostati per uno "SlideBox ()" che potrebbero renderlo più semplice, ma la maggior parte delle volte, le combinazioni di oggetti che metto insieme richiedono più H List Box, V List Box, Lineup Box, ecc. il display come lo voglio.
Ciò che sarebbe fantastico è un oggetto di visualizzazione (forse chiamalo "slidebox()"? ) che puoi inserire oggetti di visualizzazione al suo interno, e quindi tutto in quella casella contenitore viene trattato come una diapositiva (o una pagina).
Il modo in cui in genere lo gestisco è fare in modo che lo script crei gli oggetti immagine accoppiati mentre vengono creati.E poi aggiungerli al diario.Quindi, nel caso precedente in cui vengono creati più grafici di variabilità, creerei una casella di riepilogo V () o una casella di riepilogo H per l'iterazione del ciclo 1 e aggiungere il primo grafico di iterazione nella casella di riepilogo () e quindi nel ciclo di iterazione 2, Vorrei aggiungere l'output nella casella di riepilogo, quindi copiare un'immagine della casella di riepilogo nella finestra del diario, quindi eliminare la casella di riepilogo () e ricominciare da capo per l'iterazione 3, ecc.
Si potrebbe anche interrogare il Journal dopo che tutti i grafici di variabilità sono presenti, usando XPath, e scoprire il numero di Outline Boxes, e da lì costruire le tue coppie e inserirle in una nuova finestra del journal che può essere il tuo output finale di Save Presentation
E sono sicuro che vengono utilizzati altri metodi
Jim, stavo pensando la stessa cosa, ma, come in questo caso, se non sai quanti grafici ci saranno prima del tempo. Come faresti per creare n coppie di grafici?
Il metodo che utilizzo è creare le diapositive come voglio che siano all'interno di JMP, quindi copiarle come immagini in una finestra di visualizzazione finale, un oggetto immagine per ogni pagina pptx che desidero.
Di seguito è riportato uno script che mostra un semplice esempio.
Names default to here(1);
dt=Open("$SAMPLE_DATA/big class.jmp");
// Create the 2 graphs
fg = dt << Fit Group(
Oneway(
Y( :height ),
X( :sex ),
SendToReport(
Dispatch( {}, "Oneway Plot", FrameBox, {Frame Size( 463, 305 )} )
)
),
Oneway(
Y( :weight ),
X( :sex ),
SendToReport(
Dispatch( {}, "Oneway Plot", FrameBox, {Frame Size( 463, 305 )} )
)
),
<<{Arrange in Rows( 1 )}
);
// Place the graphs into a single picture
nw=new window("The Picture", report(fg)[outlinebox(1)]<<GET picture=""></GET>Solo un suggerimento:
Impila le tre colonne delle misurazioni e quindi crea questa figura nel generatore di grafici.
Sono tutte le figure su una diapositiva.
