Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array ListCiao a tutti,
Ho cercato di trovare un modo per salvare i miei risultati in un pptx. template e mi sono reso conto che avrei dovuto prima salvare ogni risultato in un file per poi compilarlo in un report modello.
Secondo il seguente post:
https://community.jmp.com/t5/Discussions/the-graph-size-exported-to-pptx-Save-Presentation/mp/72135#M35554
Tuttavia, non sono riuscito a trovare un modo per nominare i miei file in base all'elenco creato sotto il ciclo. Sto usando il seguente esempio di Big Class:
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
win = New Window( "Graphs", lub = Lineup Box( N Col( 2 ) ) );
ages = (Associative Array( Column( dt2, "age" ) ) << Get keys);
For( i = 1, i <= N Items( ages ), i++,
dt2 << select where( :age == ages[i] );
dt = dt2 << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
lub << append(
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :age, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :age ),
Where( :age == ages[i] ),
Display( :age, Size( 224, 126 ), List Display )
)
)
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
gb<< save picture(Eval Insert("C:\....\BigClass^i^.png"));););C'è qualcuno che sa come fare questo?
Ho provato a utilizzare il seguente, invece, ma non funziona.
gb << Save Picture( "C:\BigClass_" || Ages[i] ||".jpg", JPEG );
Devo creare una stringa/lista diversa per questo? Qualsiasi guida è molto apprezzata.
Grazie
Ri: Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array ListNon posso rispondere direttamente alla tua domanda, ma solo un paio di pensieri sull'approccio. Potresti voler esplorarli tramite point'n'clikc prima di guardare allo scripting.
1. Si potrebbe voler utilizzare il ruolo Pagina in Generatore di grafici perché questo crea un grafico separato con assi per ogni livello della variabile in Pagina.
dt = Open( "$SAMPLE_DATA\Big Class.JMP" );
Graph Builder(
Size( 518, 2948 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ), Page( :age ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) )
);
2. Potrebbe valere la pena pensare a come utilizzare la funzionalità di salvataggio come powerpoint. Da qualsiasi rapporto: File > Salva con nome > Salva come tipo: Presentazione PowerPoint. Save Presentation() è la funzione JSL.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = bivariate( y( :weight ), x( :height ) );
rbiv = biv << report;
rbiv << Save Presentation( "$TEMP/jmp_example.pptx" );
Open( "$TEMP/jmp_example.pptx" );
Spero che aiuti.
Saluti,
Fil
Ri: Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array List@gzmorgan0
Grazie per la risposta.
Sto cercando di utilizzare JSL fino al punto in cui ho bisogno di creare il rapporto in pptx. Il motivo per salvare i grafici in base al nome dell'elenco è perché devo creare un rapporto per ogni elemento di questo elenco.
Ho messo lo script JSL qui sotto. Lo script così com'è funziona ma non salva i grafici con il nome della lista corrispondente, salva solo ogni grafico come sample_1; campione_2...ecc. Ad esempio, il nome del mio campione_1 è "EH3", tuttavia i nomi cambieranno ogni mese e quindi idealmente ne avrei bisogno per ottenere il nome dall'elenco.
Devo ancora aggiungere una tabella riassuntiva per ogni Sample[i] e aggiungerla insieme al grafico a pptx. È possibile?
win = New window("Graphs", lub = Lineup Box (Ncol(3)));
//selecting the list of samples or variables for which a graph is required
Samples = (Associative Array(Column (dt4, "Sample"))<<GET keys=""></GET>
Ri: Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array ListIl tuo ultimo post aveva
gb<< save picture(Eval Insert("C:\temp\^i^.png") ||Char(Ages[i])||".jpg",JPEG););Per favore guarda la tua sintassi. Per i=1 dove Ages[i] = 12, questo produrrebbe la stringa "C:\temp\1.png12.jpg" .
gb<< save picture("C:\temp\Age_" ||Char(Ages[i])||".jpg",JPEG););F o i=1 dove Ages[i] = 12, questo produrrebbe la stringa "C:\temp\Age_12.jpg"
Il tuo esempio originale utilizzava valori univoci della colonna :age come elenco.Se il salvataggio non funziona e non è dovuto a una sintassi scadente, è possibile che i valori nell'elenco contengano simboli che non possono essere un nome Windows valido. Non ho aperto il tuo link di riferimento fino a poco fa. Se stai usando p3icli per creare pptx, puoi usare i comandi p3icli per titoli e didascalie per nomi o commenti complessi. Ho usato questo metodo per scrivere report per controllare i limiti di controllo:
- creare un elenco di comandi p3icli, ho chiamato cmdlist, quindi per ognuno inserisco in cmdlist i comandi p3icli per
- per inserire una nuova diapositiva O modello duplicato
- un comando per un complesso titolo che fornisce informazioni sui parametri di contesto, date dei dati, ecc. sul grafico da visualizzare
- un comando per inserire l'immagine usando nomi semplici come fid1 o fid2
- un comando per una didascalia basato sulle analisi, se i limiti sono troppo larghi o troppo stretti ecc.
Ho scritto questo schema per illustrare l'utilizzo delle opzioni di titolo e didascalia di p3icli invece di utilizzare i nomi dei file salvati.
Se hai bisogno di utilizzare un'alternativa per p3icli, questo non è il forum adatto, per favore manda un messaggio privato.
Dopo aver esaminato l'elenco, non trovi simboli insoliti come @ # % ( ) - ^ nell'elenco, quindi devi fornire uno snippet del tuo codice JSL effettivo e il messaggio di errore.
Ri: Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array ListFunziona sicuramente ma non è quello che voglio. Vorrei avere l'immagine come quando si salva l'immagine <<Ri: Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array ListStavo pensando a qualcosa di simile al seguente, ma ora mi rendo conto che probabilmente non è quello che vuoi poiché non cattura gli assi.
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
gb = dt2 << Graph Builder(
Size(800, 600),
Variables( X( :weight ), Y( :height ), Wrap( :age ) ),
Elements( Points( X, Y ), Smoother( X, Y ) )
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
dt = gb << make into data table();
for each row(dt,
img = :graph;
img << save image(Eval Insert("$DOCUMENTS/BigClass^char(:age)^.png"));
);
Ri: Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array List@XanGregg
Come faresti quindi riferimento a ciascun tavolo? Come salveresti quindi ogni tabella in un'immagine con il nome dell'elenco?
Potresti mostrare come lo faresti con questo esempio di Big Class?
Grazie
Ri: Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array List@gzmorgan0
Grazie per il consiglio. Funziona in questo esempio per Big Class. Tuttavia, non funziona sul mio scrypt.
Ho provato entrambi i comandi e solo il primo funziona per il mio script, ma sostituisce solo ^i^ come numero e non Nome/Carattere che è quello che ho come Elenco. Il secondo comando funziona bene per l'esempio di Big Class, quindi potrebbe essere che Char() non sia applicabile per i nomi?
gb<< save picture(Eval Insert("C:\temp\BigClass^i^.png"));
//and also
gb << Save Picture( "C:\temp\BigClass_" || char(Ages[i]) ||".jpg", JPEG );
);
Ho anche provato a utilizzare la funzione Char () sotto la prima riga di comando ma non funziona come "||" non sembra funzionare per Eval Insert().
C:\temp\^i^.png") ||Char(Ages[i])||".jpg",JPEG););gb<< save picture(Eval Insert("
Sapete come aggirare questo?
Ri: Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array ListHai bisogno di una funzione Char() intorno a Ages[i]. I valori dell'array associativo Ages sono numerici.Nota che lo script seguente sta scrivendo nella directory c:\temp\. Anche la dichiarazione commentata funzionerà.Dovresti chiudere l'istruzione Append() prima dell'istruzione save.
dt2 = Open( "$SAMPLE_DATA\Big Class.JMP" );
win = New Window( "Graphs", lub = Lineup Box( N Col( 2 ) ) );
ages = (Associative Array( Column( dt2, "age" ) ) << Get keys);
For( i = 1, i <= N Items( ages ), i++,
dt2 << select where( :age == ages[i] );
dt = dt2 << subset( invisible, selected rows( 1 ), selected columns( 0 ) );
lub << append(
gb = dt << Graph Builder(
Variables( X( :weight ), Y( :height ), Wrap( :age, N View Levels( 1 ) ) ),
Elements( Points( X, Y, Legend( 7 ) ), Smoother( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Close Outline( 1 ),
Add Filter(
columns( :age ),
Where( :age == ages[i] ),
Display( :age, Size( 224, 126 ), List Display )
)
)
);
);
Report( gb )[AxisBox( 2 )] << Min( 0 );
//gb<< save picture(Eval Insert("C:\temp\BigClass^i^.png"));<BR />
gb << Save Picture( "C:\temp\BigClass_" || char(Ages[i]) ||".jpg", JPEG );
);
Ri: Come salvare ogni grafico dal generatore di grafici in un file immagine con il titolo dall'array List"gb << Trasforma in tabella dati ()" aiuta? Crea una nuova tabella di dati con una colonna di immagini.