salvare i grafici come PNG o JPEGCIAO,
Ho creato uno script che consente all'utente di selezionare un file excel, elaborarlo, aggiungere o formulare colonne ad esso, aprire il generatore di grafici e tracciarlo con un filtro dati locale.
La mia domanda è:
1. Come posso salvare i grafici scegliendo l'opzione filtro dati locale utilizzando lo script? Ad esempio, ho 2 filtri di dati locali, diciamo Trimset(10, 100, 101, 110, 111, 1000, 11111) e formula(sì o no) e ho bisogno di tracciare grafici come (Tutti i valori trimset con formula NO) e (Ciascuno dei valori trimset con formula SÌ) .. quindi un totale di 8 grafici.
2. Nel mio grafico, voglio che sia inclusa l'affermazione sotto il grafico "Dove Trimset è .... e la formula è NO".
3. Salva i grafici in una cartella in file png o jpeg
4.La tabella dati JMP e le tabelle del generatore di grafici escono senza salvare.
5. come creare una funzionalità aggiuntiva per renderla un'operazione con un solo clic perché devo farlo per 100 o più file?
Ho letto tutte le discussioni ma non sono in grado di ottenere la risposta giusta. Apprezzo molto il vostro aiuto.
Grazie
Ri: salvare i grafici come PNG o JPEGSì, è disponibile un ciclo For.JSL è un linguaggio molto completo, con tutte le funzionalità che ci si aspetterebbe da un linguaggio informatico.
Ti suggerisco di leggere i primi capitoli della Scripting Guide, in modo da farti un'idea di tutti i componenti del linguaggio e di come implementarli.
Se potessi darmi qualche informazione su quali linguaggi informatici usi, mi aiuterebbe a fornirti esempi JSL in termini che conosci.
Ri: salvare i grafici come PNG o JPEGGrazie txnelson per la risposta. È stato molto utile. Se volessi fare un ciclo for in un filtro dati, è possibile farlo? Che può passare automaticamente attraverso ogni condizione e tracciare i grafici. Come hai suggerito, esaminerò la funzione Addin nella guida allo scripting.Ri: salvare i grafici come PNG o JPEGEcco un approccio diverso, senza utilizzare il filtro dati:
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" ) );
deletedirectory("$temp/myPics");
createDirectory("$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(evalexpr(biv = dt << Bivariate(
Y( :weight ),
X( :height ),
Automatic Recalc( 1 ),
Fit Line( {Line Color( {213, 72, 87} )} ),
where( age == expr(thisAge) & sex == expr(thisSex) )
)));
parentBox = Report( biv ) << parent;
picture = parentBox << getpicture;
picture << saveImage( "$temp/myPics/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png", "png" );
// optional: Open( "$temp/age" || Char( thisAge ) || "sex" || Char( thisSex ) || ".png" );
biv<<CLOSEWINDOW></CLOSEWINDOW>
Files In Directory("$temp/myPics") = {"age12sexF.png", "age12sexM.png", "age13sexF.png", "age13sexM.png", "age14sexF.png", "age14sexM.png", "age15sexF.png", "age15sexM.png", "age16sexF.png", "age16sexM.png", "age17sexF.png", "age17sexM.png"};
where clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphwhere clause above graphclausola where sopra il grafico
In questo caso la clausola where si trova sopra l'output della piattaforma, quindi ho usato il metodo <Ri: salvare i grafici come PNG o JPEG
Il mio primo punto è che non dovresti leggere le discussioni per imparare come scrivere JMP.Dovresti leggere la JSL Scripting Guide.
Aiuto==>Libri==>Guida allo scripting
Quindi, se non riesci a far funzionare le cose, la Comunità di discussione è un'ottima risorsa per aiutarti.
Fammi dare un'occhiata alle domande che fai.
1. Come si utilizza un filtro dati locale e quindi si salva l'output.
Di seguito è riportato uno script grezzo che ti mostrerà come farlo in un modo molto poco elegante
dt=Open(<PATH to="" your="" data="https://community.jmp.com/" table="">);
gb=Graph Builder(
Size( 527, 453 ),
Show Control Panel( 0 ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 13 ) ), Smoother( X, Y, Legend( 14 ) ) )
);
Thefilter=gb<<LOCAL data="https://community.jmp.com/" filter=""></LOCAL></PATH>
Il codice per il generatore di grafici e ciascuno dei filtri locali è disponibile sotto i triangoli rossi.Se li selezioni e vai su "Salva script" otterrai il codice richiesto per i diversi casi che hai.Basta avviare Graph Builder.Quindi salva lo script per il generatore di grafici.Quindi apri il filtro locale.Impostalo sul tuo primo caso (clausole where) e quindi salva il suo script.Quindi, cambia il filtro locale nel caso successivo e salva il suo script .... ecc.
2. L'istruzione sotto il grafico viene salvata in png
3. Devi solo specificare nella funzione Salva immagine il percorso.Questo può essere gestito in modo programmatico in modo che possa seguire qualsiasi metodo di denominazione che si desidera utilizzare.
4. Lo script di esempio mostra il metodo per eseguire questa operazione
5. C'è un'ottima documentazione nella Scripting Guide su come creare un componente aggiuntivo.È una risposta troppo lunga per essere trattata nella discussione
Ri: salvataggio di grafici come PNG o JPEGQuesto codice aggiunge un piccolo menu a qualsiasi filtro dati - seleziona le tue colonne e fai clic su OK per scorrere le voci e salvare automaticamente il grafico di GraphBuilder.
(le colonne con valori continui non sono elencate)

Names Default to HERE(1);
if(not(namespaceExists("autoAnimate")),New NameSpace("autoAnimate"));
autoAnimate:update = function({},
Try (autoAnimate:DFTopLB = Current Report()["Local Data Filter", List Box( 1 )], stop());
Try(autoAnimate:myDFTPBs = (Current Report()["Local Data Filter", Lineup Ruler Box( 1 ), List Box( 1 )] << Xpath( "//TabPageBox" )),stop());
// collect Data Fitlers with ListBoxes, remove the continuos ones.
autoAnimate:myDFLBs ={};
For Each ( {TPB,i}, autoAnimate:myDFTPBs, tmp=(TPB << xpath( "//ListBoxBox" ));If(NItems(tmp),Insert Into(autoAnimate:myDFLBs,tmp[1]),Remove from(autoAnimate:myDFTPBs,i) ));
// which columns are used?
autoAnimate:DFCols = Transform Each( {TPB}, autoAnimate:myDFTPBs, Trim( Word( 1, TPB << Get Title, "(" ) ) );
// what are the entries? (for the filename)
autoAnimate:myDFLBItems = autoAnimate:myDFLBs << get items;
// how many entries?
autoAnimate:myDFLBNItems = Transform Each( {items}, autoAnimate:myDFLBItems, N Items( items ) );
// variales for the for loops
chars = {"aa", "bb", "cc", "dd", "ee", "ff", "gg", "hh", "ii"};
// append a Display Box:
Try(autoAnimate:animatePane << delete);
autoAnimate:DFTopLB << append( autoAnimate:animatePane = V List Box (Spacer Box( size( 0, 20 ) ),Panel Box( "cycle selected + save", V List Box( colSelection = List Box( autoAnimate:DFCols ), H List Box( Button Box("update",autoAnimate:update()),Spacer Box (size(40,0)),Button Box( "start", autoAnimate:animateNsave() ) )) ) ));
);
autoAnimate:animateNsave = Function( {},
// which DFs are selected?
selectedCols = colselection << Get Selected Indices;
// compose the expression
expression = "";
xx=1;
// for loop for every active DF:
For( i = 1, i <= N Items( autoAnimate:myDFTPBs ), i++,
expression = expression || If( Contains( selectedCols, i ),
"For(" || chars[i] || "=1," || chars[i] || "<=" || Char( autoAnimate:myDFLBNItems[i] ) || "," || chars[i] || "++,__LB" || Char( i ) ||
"__ << clear selection << set selected(" || chars[i] || ");",
"if(1,"
)
);
// save current Graph builder Plot -- how about other reports?
expression = expression || "wait();(current report()<< XPath(\!"//OutlineBox[@helpKey='Graph Builder']\!"))<<SAVE picture=""></SAVE>Re: salvataggio dei grafici come PNG o JPEG@hogi , questo script è fantastico! Condivido i risultati delle mie analisi con molti utenti non JMP e avere questo menu aggiunto a qualsiasi grafico con un filtro dati locale è molto utile.
*Potrebbe essere utile per i principianti notare che lo script di @hogi è autonomo e può essere aggiunto a una tabella dati (utilizzando il triangolo rosso in cima al pannello sinistro nella tabella dati e selezionando "Nuovo script"). Quindi, quando esegui questo script, aggiungerà il piccolo menu al report attivo corrente a cui è già applicato un filtro dati locale.
Re: salvataggio dei grafici come PNG o JPEGE' appena diventato più facile : )
Ho aggiunto la funzionalità alla barra degli strumenti del generatore di grafici *)
*) ora disponibile tramite il marketplace:
https://marketplace.jmp.com/appdetails/Graph%20Builder%20Toolbar

Re: salvataggio dei grafici come PNG o JPEG... ma è comunque la versione con lo stesso bug.
Se vuoi velocizzarlo, cambia l'argomento di wait() da () a ( 0) :
