come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?Se ho utilizzato la funzione "PAGINA" nel generatore di grafici e ora ho più grafici sulla stessa pagina, come posso ottenere i grafici del generatore di grafici uno per uno in un ciclo per salvarli come png?
Questo è un codice di esempio di @Craige
dt = Open( "$sample_data/big class.jmp" );
ages = Data Table( "big class" ) << Summary( Group( :age ), Freq( "None" ), Weight( "None" ) );
sexes = Data Table( "big class" ) << Summary( Group( :sex ), Freq( "None" ), Weight( "None" ) );
Delete Directory( "$temp/myPics" );
Create Directory( "$temp/myPics" );
For( iage = 1, iage <= N Rows( ages ), iage++,
thisAge = ages:age[iage];
For( isex = 1, isex <= N Rows( sexes ), isex++,
thisSex = sexes:sex[isex];
Eval(
Eval Expr(
gb = dt << Graph Builder(
Size( 508, 438 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) ),
where( age == Expr( thisAge ) & sex == Expr( thisSex ) )
)
)
);
parentBox = (Report( gb ) << parent)< picture = parentBox << getpicture;
picture << saveImage( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png", "png" );
// optional: Open( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png" );
gb << closewindow;
);
);
Close( ages, "nosave" );
Close( sexes, "nosave" );
Show( Files In Directory( "$temp/myPics" ) );
Grazie.
Ri: come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?Un file pptx è solo un file zip mascherato. Se cambi l'estensione da .pptx a .zip (potresti dover modificare le impostazioni della cartella in Windows per mostrare le estensioni di file conosciute). All'interno del file zip ci sarà una cartella chiamata media che contiene tutte le immagini.
Ri: come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?L'ho fatto funzionare su PowerPoint con un loop. Grazie WendyRi: come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?Grazie Melanie. Lo proverò.Ri: come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?Powerpoint funziona, anche se non sono sicuro di come si ottengono le immagini da PowerPoint.
Ho sperimentato e ho avuto un po' di fortuna con il salvataggio in formato html. Quando salvi un report come html, tutte le immagini vengono salvate in una cartella denominata gfx. Se continui a salvare il file più e più volte, la cartella gfx non verrà riscritta come fa la pagina html, ma tutte le immagini verranno semplicemente aggiunte alla stessa cartella.
Avevo diverse versioni di questo script di esempio su cui stavamo lavorando nei messaggi e talvolta salvava ogni grafico individualmente, altre volte no. Con l'attuale iterazione, sembra funzionare. In caso contrario, c'è invece del codice che esegue il salvataggio in PowerPoint e viene commentato. Vedi se riesci a farlo funzionare con il tuo script più complesso. Tieni presente che la pagina html finale conterrà solo l'ultimo report del graphbuilder, non tutti. Nella cartella gfx, ottengo un'immagine per ogni grafico e anche un'immagine per ogni riquadro della legenda: dovrai selezionarle.
dt = Open( "$SAMPLE_DATA/Semiconductor Capability.jmp" );
unique lotid = Associative Array(dt:lot_id);
unique Wafer = Associative Array(dt:wafer);
currentid = unique lotid << First;
currentwafer = unique Wafer << First;
For( iwfr = 1, iwfr <= N Items( unique Wafer ), iwfr++,
nextwafer = unique Wafer << Next( currentwafer );
Eval(
Eval Expr(
gb4 = dt << Graph Builder(
Variables(
X( :NPN1 ),
Y( :PNP1 ),
Page( :SITE ),
Group X( :PNP2 ),
Group Y( :NPN2 ),
Color( :lot_id )
),
Elements( Treemap( X, Y, Legend( 24 ), Summary Statistic( "% of Total" ) ) ),
where( Wafer == Expr( currentwafer ) ),
Display( :SITE, Size( 181, 153 ), List Display ),
)
)
);
// powerpoint save
//If( File Exists("$desktop/wow.pptx"), gb4 << Save Presentation( "$desktop/wow.pptx", "Append", "PNG" ),
// gb4 << Save Presentation( "$desktop/wow.pptx", "PNG" )
//);
// html save
gb4 << Save HTML( "$desktop/wow.html", "PNG" );
gb4 << Close Window;
currentid = unique lotid << First;
);Ri: come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?Sì, c'è un esempio nello Scripting Index.
- Fare clic sul menu Guida e selezionare Indice di scripting.
- accedere Salva presentazione nella casella di ricerca.
L'indice degli script fornisce la sintassi, una breve descrizione e uno script di esempio Salva presentazione . Ho allegato un'immagine della finestra per tua comodità.
Buona fortuna con il tuo progetto di scripting!
Wendy
Ri: come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?Penso di poter lavorare con quello,
è solo una riga di script per ottenere PowerPoint?
Grazie WendyRi: come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?Con Page(), i grafici completi non vengono archiviati in singoli DisplayBox che possono essere salvati in singoli file PNG. L'esportazione in un file PowerPoint spezzerebbe le pagine. Altrimenti, dovresti utilizzare un filtro dati locale, Where() o By().
Wendy
Ri: come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?Ciao Wendy,
Grazie per l'idea di utilizzare By. Il motivo per cui desidero la funzione PAGE è che mi dà la possibilità di bloccare le scale e posso visualizzare tutto, non solo quello selezionato.
Per caso esiste un modo per accedere a diversi grafici da tracciare utilizzando la funzione PAGE? Sarebbe davvero utile.
Grazie mille.
Ri: come salvare i grafici quando si utilizza PAGE nel generatore di grafici JSL?Ciao,
Personalmente, utilizzerei By() invece di Page() in questo caso perché con By viene restituito un elenco di oggetti del Costruttore di grafici. Posso quindi scorrere l'elenco degli oggetti per salvare ciascun file PNG. Per esempio,
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
gb = dt << Graph Builder(
Size( 528, 454 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) ),
By( :age, :sex )
);
For( i = 1, i <= N Items( gb ), i++,
fName = Report( gb[i] )[Outline Box( 1 )] << Get Title;
Report( gb[i] )[Outline Box( 1 )] << Save Picture( "$TEMP/myPics/" || fName || ".png", "PNG" );
);
Spero che questo ti aiuti!
Wendy