JSL: genera un grafico -xy che scorre attraverso colonne con variabili diverse
Saluti,
Contesto: dispongo di un set di dati molto ampio che rappresenta il risultato di test RF specifici per dispositivi a semiconduttore. Durante questo test RF esistono diverse condizioni importanti. Ho 3 uscite testate su 16 canali diversi in 6 diversi stati di test che mi richiedono di generare 105 grafici diversi.
esempio: guadagno rispetto alla frequenza sul canale 1 allo stato di test 1; Guadagno rispetto alla frequenza sul canale 2 allo stato di test 1 dove ho 15 canali e 6 stati di test.
Ho cercato una soluzione in questi forum di discussione e gli armadi in cui sono arrivato è un thread iniziato nel 2017 intitolato " Come esportare il grafico JMP in PPT tramite JSL?"
Ho provato a incorporare lo script utilizzato in questa soluzione per aiutarmi e riesco a ottenere il numero richiesto di grafici ma non riesco a filtrare canali specifici.
Penso di avere difficoltà a comunicarlo, quindi per favore se hai bisogno di chiarimenti, chiedi.
Grazie
Summarize( dt, lstChannel = By( :channel ) );
gb = Graph Builder(
invisible,
Size( 1225, 952 ),
Show Control Panel( 0 ),
Variables(
X( :Name( "Freq _(GHz)" ) ),
Y( :Gain ),
Group X( :wafer_num ),
Overlay( :RowCol ) ),
Elements( Smoother( X, Y, Legend( 19 ) ) )
);
For( i = 1, i <= N Items( GroupBy ), i++,
gb << Local Data Filter(
columns(
:wafer_num,
:channel,
:RowCol),
Where( :channel == LstChannel[i] ) ),
// I would like to loop through the teststates as well
Where( :teststate == 1 ),
Mode( Show( 1 ), Include( 1 ) ) );
If( i == 1,
gb << Save Presentation( "$TEMP/jmp_example2.pptx" ),
gb << Save Presentation( "$TEMP/jmp_example2.pptx", Append )
);
gb << remove data filter;
);
Open( "$TEMP/jmp_example2.pptx" );Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseImmagino che gli altri due non si siano attaccati
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseGrazie per le informazioni, sono sempre esaustive. Penso che sia molto fortuito che tu sia stato quello che mi ha aiutato di più. Vedete, sono un ingegnere industriale in una fonderia che ha un mix di prodotti a basso volume e mix molto elevato ed eseguiamo una quantità significativa di test RF. Tutto quello che hai menzionato:
- esiste un intervallo noto come limiti di controllo o specifiche,
- è necessario ridimensionare qualcosa come +/- k sigma,
- è necessario controllare le linee della griglia, ad esempio una linea della griglia ogni 0,5 sigma,
- dati il cui valore nominale è grande ma la variazione è molto piccola, ad esempio, il valore medio è 1750222 stdev è 0,000023, quindi traccio una trasformazione Y-mean e immagino una buona scala e utilizzo l'algoritmo, gdinc.jsl
- eseguire un'analisi e determinare se i dati sono fortemente distorti o grumosi (cluster).
Quello che sto cercando di realizzare lo stiamo testando e il nostro cliente sta utilizzando alcuni ampi limiti di specifica basati sull'assenza di dati, quindi stiamo cercando di determinare i limiti di specifica in base a +/- 3 sigma e +/- 4,5 sigma con relativo controllo superiore e inferiore limiti.Un altro esempio è quando stavo chiedendo di ampliare l'asse X per i grafici di distribuzione perché i nostri attuali limiti di specifica sono LSL = 20 e USL = 40. Questo è il motivo per cui sono un accanito sostenitore di JMP grazie agli straordinari strumenti di cui disponi nelle utilità Qualità e Processo.
So molto poco, se non per niente, sulla trama dell'analisi dei dati multivariata, ma ci proverò.
In realtà questa conversazione mi fa capire perché sono di nuovo qui. Vorrei il tuo contributo riguardo all'utilizzo dello stesso metodo di tracciamento che mi hai fornito per il generatore di grafici e la distribuzione per l'analisi Correggi Y per X. Ritengo che questo sia un ottimo strumento di analisi in quanto possiamo vedere la differenza (statisticamente) tra i set di dati che nel nostro caso è wafer_number. Ovviamente utilizzo il test T di Student per ogni coppia per confrontare le medie... Ho provato a collegare e collegare e riprodurre e mi sono confuso con la funzione dispath..In allegato c'è la tabella dei dati e una finestra Salva nello script di ciò che sto cercando di fare insieme a un'immagine dell'output. Ancora una volta, tutto il tuo aiuto è estremamente utile.
Nota a margine: ho chiesto al mio manager se potevo seguire un corso approfondito di scrittura di sceneggiature e lui ha detto di sì, quindi se avete qualche consiglio fatemelo sapere. Mi trovo nella zona di Balitmore, MD.
yng
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseYing,
Non hai specificato cosa stai cercando. In genere utilizzo il ridimensionamento predefinito di JMP e utilizzo qualcosa di simile al seguente se desidero lo stesso ridimensionamento dell'asse per tutti i sottogruppi. Questo script nomina le variabili di interesse ylist, ma può essere applicato a qualsiasi variabile continua numerica (colonna), anche Datetime.Il trucco è lasciare che JMP si ridimensioni per tutti, quindi copiare l'impostazione dell'asse nella colonna della tabella, quindi qualsiasi grafico che utilizza quella colonna distribuirà quella scala.
Names Default to Here(1);
ylist = {"Sepal length", "Sepal width", "Petal length", "Petal width"};
dt = Open("$sample_data/iris.jmp");
//get common axis
for(i=1, i<=nitems(ylist), i++,
ovl = dt << Overlay Plot(Invisible,
Y( Column(dt,ylist[i]) ), //yaxis
Overlay( 0 )
);
report(ovl)[AxisBox(1)] << Save to Column Property;
ovl << close window;
);
//now the same axis will be applied to all sub groups
ovl1 = dt << OverlayPlot( Y( :Petal length ), Overlay(0), By(:Species) );
//all 3 subgroups have the same Y - axis
//ovl = dt << OverlayPlot( Y( eval(ylist) ), Overlay(0), By(:Species) );
Eseguo il ridimensionamento personalizzato per gli assi solo se:
- esiste un intervallo noto come limiti di controllo o specifiche,
- è necessario ridimensionare qualcosa come +/- k sigma,
- è necessario controllare le linee della griglia, ad esempio una linea della griglia ogni 0,5 sigma,
- dati il cui valore nominale è grande ma la variazione è molto piccola, ad esempio, il valore medio è 1750222 stdev è 0,000023, quindi traccio una trasformazione Y-mean e immagino una buona scala e utilizzo l'algoritmo, gdinc.jsl
- eseguire un'analisi e determinare se i dati sono fortemente distorti o grumosi (cluster).
Per quanto riguarda il rilevamento dei valori anomali, non ho trovato un metodo applicabile a tutti i dati. Per i dati univariati con dati fortemente distorti a destra (es. Poisson gonfiato zero), mi piace utilizzare un metodo Lenth modificato:
- uscreen = mediana + k * (percentile p superiore -mediana) / Abs(quantile normale(p))
- lscreen = mediana - k * (mediana - percentile inferiore(p)/ Abs(quantile normale(p))
- dove p potrebbe essere 0,1 (per 10 e 90 percentili) oppure p potrebbe essere 0,25, allora questo sarebbe uno pseudo sigma modificato e tipicamente k è in [4,6] per i dati riepilogati. Ci sono volte per i dati grezzi, io uso un k molto più grande.
- Inoltre, in genere eseguo lo screening per tutti i dati di una variabile, ma se i gruppi sono abbastanza diversi, II eseguo lo screening per gruppi se ci sono dati sufficienti per ciascun gruppo.
Di seguito è riportato un esempio per il calcolo dei valori di screening per gruppo. Se vargroup ha 10 gruppi, uscreen e lscreen sono vettori di dimensione 10 e vg è un elenco di 10 nomi di vargroup.
//Find global outliers by vargroup for raw measurement data
//Use an assymetric 6 pseudo-sigma, computed from the 10 & 90th percentiles.
summarize( vg=by(vargroup),
c=count,
q10=quantile(varvalue,.10),
q50=quantile(varvalue,.50),
q90=quantile(varvalue,.90)
);
uscr = q50 + 6*(q90-q50)/Normal quantile(0.9);
lscr = q50 - 6*(q50-q10)/Normal quantile(0.9);Notare che:
- Non esiste un metodo corretto e dovresti sempre rivedere i metodi con coloro che stanno esaminando i dati. E i valori anomali non dovrebbero mai essere ignorati, perché portano a informazioni possibilmente importanti.
- Utilizzo spesso 2 livelli di screening, soprattutto quando ho bisogno di calcolare i limiti di controllo, screening per i punti tracciati e screening per limiti... i limiti di controllo non dovrebbero contenere dati 5 e 6 sigma.
- Se stai creando analisi settimanali, tieni presente che puoi ottenere valori di screening diversi ogni settimana. Potresti voler fare una mega analisi una volta e utilizzare gli stessi limiti ogni settimana.
- Per i dati multivariati, è necessario utilizzare una schermata multivariata. Vedi grafico. Due evidenti valori anomali hanno il controllo in base a limiti univariati. Pertanto, se i dati sono fortemente correlati, è necessario utilizzare uno schermo correlato. Il multivariato JMP ha una bella schermata multivariata.

Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseBuongiorno gzmorgan0 ,
In precedenza hai menzionato "Esistono più metodi per ridimensionare automaticamente e trovare ed eliminare automaticamente i valori anomali"
Mi chiedo se non ti dispiacerebbe condividerlo con me?Ho scritto molto codice e sono abbastanza vicino alla fine con alcune piccole modifiche..
Yng
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseInnanzitutto, mi chiamo David. Piacere di conoscerti..
È corretto, voglio una scala uniforme e regolerei l'asse -x in base allo scenario peggiore..Mi piacerebbe sentire il tuo consiglio di rimuovere i valori anomali.. Quelli stanno uccidendo il mio set di dati.. Le parti che stiamo testando elettricamente PASSANO, PASSANO A malapena o falliscono in modo catastrofico. Quelle parti catastroficamente guastate devono essere rimosse.
Collegherò il tuo script rivisto nel mio script principale per testarlo. Ancora una volta, sono molto riconoscente. Voglio anche ringraziarti per Include().. Avevo una gran parte del mio script che non era altro che stringhe di pull di dati SQL. Il nostro database ha 8 tabelle diverse da cui devo estrarre i dati a seconda del tipo di test..
Grazie ancora...
Ecco un esempio per tua informazione: ne ho 9 che occupavano un sacco di righe di codice che sono state risolte da un Include()
testdata_HAY_DC_QQ_Data = Expr(
"
SELECT
t1.testdate,
t1.wafer_id,
t1.wafer_number,
t1.lot_number,
t2.rownum,
t2.colnum,
t2.die_id,
t2.part_name,
t2.testname,
t2.channel,
t7.header_id,
t7.idx,
t7.run_id,
t7.set_id,
t7.Supply_Name,
t7.Voltage,
t7.Current
FROM tst_master t1
LEFT OUTER JOIN tst_dataset_header t2
ON ( t2.run_id = t1.run_id )
LEFT OUTER JOIN tst_dc_data t7
ON ( t7.header_id = t2.header_id )
WHERE (t1.wafer_number LIKE '"||SelectedLot||"')
AND (t2.testname LIKE '"||SelectedTest||"')
"
);
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverse
Yngeinstn,
Avevo l'impressione che volessi la stessa scala per tutte le distribuzioni.JMP Distribution in genere fa un ottimo lavoro adattando gli istogrammi ai dati a portata di mano. Tuttavia, quando si tracciano sottoinsiemi di dati, la scala dei singoli istogrammi sarà diversa. Se conosci l'intervallo dei dati, assegna i valori per Lo, Hi e inc. Se vuoi che lo script gestisca i dati il cui intervallo potrebbe cambiare con una modifica del processo o ?? quindi calcolare Lo, Hi e inc dovrebbe essere un compito dello script.
Per lo script precedente, ho utilizzato solo i valori min e max di non escluso dati.
Lo = Piano( Col Minimo ( :test_2 * If( Escluso(), Vuoto(), 1 ) ) );
Ciao = Soffitto( Col Massimo( :test_2 * If( Escluso(), Vuoto(), 1 ) ) );
Di seguito, ho apportato un'altra modifica per dare un po' di spazio alle estremità: calcolare lo sviluppo std dei dati non esclusi e aggiungere una mezza deviazione std.Uno dei motivi per cui ho proposto i grafici alternativi che confrontano le distribuzioni è che JMP si adatterà a tutti i dati inclusi e sarà possibile vedere gli effetti del canale e dello stato del test.
dt = Current Data Table();
jjrn3 = New Window( "Distribution [test_2]", <<JOURNAL></JOURNAL>
Esistono diversi metodi per ridimensionare automaticamente e trovare ed eliminare automaticamente i valori anomali. Sono riluttante a raccomandarlo fortemente perché i metodi accettati da un settore potrebbero non essere accettabili da un altro; e i metodi dei dati normali in genere non si applicano a dati grumosi (dati cluster o dati spaziali) o a dati con difetti gonfiati pari a zero o a dati di affidabilità.Il mio intento è quello di indicare alternative che potrebbero o meno funzionare per te.
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverse
Sì, beh, le tue capacità sono eccezionali e vorrei frequentare un corso JSL da te ogni giorno..
Domanda veloce però.. L'ho eseguito con gd_inc.jsl e questo è ciò che ottengo.. Vedo che la scala è quasi perfetta, ma i miei 15 set di dati presentano queste 2 differenze. Per non dire che questo non accadrà in futuro.. Quando dici di modificare il tuo script con il secondo che hai citato mi confondo.. Sto cercando di capire da dove derivano 10.5 e 42.0 e penso che abbia qualcosa a che fare con la funzione log() ma non ne sono sicuro..

Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diversegd_inc() è una funzione utente inviata in precedenza su questo percorso del blog.L'ho allegato di nuovo.Aggiungi il codice al tuo script prima di utilizzarlo oppure salva lo script (io chiamo il mio gd_inc.jsl) in una directory comune di funzioni utili, nella tua libreria personale e per qualsiasi script quando desideri calcolare buoni incrementi degli assi, aggiungere la dichiarazione.
Include( "mydirectory/gd_inc.jsl" );
Le persone che supportano i report per la propria azienda, spesso creano un grande script, chiamato qualcosa come usr_functions.jsl.Quindi invece di numerose istruzioni Include(), usano solo una Include("mydirectory/usr_functions.jsl")
Ecco di nuovo la funzione. Guarda il post precedente, ci sono esempi di come utilizzare questa funzione.
gd_inc = Function({xlo, xhi, ntic}, {sp,tt, yrnd, ginc, ndec,lc, ll},
sp = (xhi - xlo)/ntic;
tt = log10(sp);
yrnd = If(
tt > 0, 1 - Floor( tt ),
Abs( Floor( tt ) - 1 )
);
ginc =round(sp,yrnd);
ndec = length(word(2,char(ginc),"."));
lc = length(word(1,char(xhi),"."));
if(ndec>0, lc=lc+ndec+1);
if(xlo <0, lc++); //add 1 character for the negative sign
ll=[1,1,1];
ll[1] = ginc; //increment
ll[2] = ndec; //# decimals
ll[3] = lc; //character length
ll
); // end gd_inc
/* test cases
show(gd_inc(1,11,10), gd_inc(.001, .005, 10), gd_inc(10000,20200, 10) )
*/A proposito, utilizzo e insegno JMP e JSL da molti anni. Quindi la mia conoscenza non è così sorprendente, cerco solo di condividerla.
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseSei fantastico con queste cose JSL.. Non so nemmeno se potrei trovare qualcosa di simile. Sto testando la distribuzione proprio adesso.. Non posso ringraziarti abbastanza neanche per gli altri grafici.. Sono sicuro che mi verrà chiesto come fare anche questi. Per tua informazione, sto utilizzando JMP 12.1.0, tuttavia la nostra azienda sta passando a JMP 14 e non vedo l'ora a causa del componente aggiuntivo Semiconductor Toolkit che ho trovato su questo sito.
Ricevo un errore quando si tratta dell'istruzione gd_inc.
Nome non risolto: gd_inc nell'accesso o nella valutazione di 'gd_inc' , gd_inc( Lo, Hi, 10 ) /*###*/
Nello script seguente, errore contrassegnato da /*###*/
dt = Current Data Table();
jjrn3 = New Window( "Distribution [test_2]", <<JOURNAL></JOURNAL>
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseYngeinstn,
Ho allegato 2 script:
- ModifiedDistribution[test_2].jsl e
- OtherDistributionPlots.jsl
Il vantaggio è che non tutti i report della piattaforma hanno la stessa struttura o gli stessi messaggi e ciò che è disponibile dipende dalla versione di JMP utilizzata.Mostra struttura ad albero e Ottieni XML sono messaggi che possono aiutare a scoprire la struttura del report e l'indice di scripting elenca i messaggi per le caselle di visualizzazione.Mi piace usare XPath() per ottenere un "handle" su oggetti difficili da trovare o segmenti multipli, come BoxPlotSeg e HistSeg.Tuttavia, esistono altri metodi per fare riferimento a un oggetto. Per ottenere un handle per la scalebox della variabile Y per un istogramma, utilizzare
_xx = gb<< Xpath("//ScaleBox[@charID='1']");
_xx << messaggio;
O
Report( gb )[ScaleBox(1)] <
L'altro script mostra grafici alternativi utili per confrontare le distribuzioni.
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseGrazie per la sceneggiatura... Ho una domanda sulla prima che hai posto. Lo inserisci semplicemente nello script principale o in uno nuovo e separato?
Mi è piaciuto molto il grafico che hai tracciato e offerto al mio capo, quindi sto aspettando di sentire da lui come implementarlo nei numerosi rapporti che sta richiedendo.
Ho anche preso lo script che mi hai fornito su come tracciare -x per -y e ho sostituito Graph Builder con Distribution e ha funzionato quasi perfettamente. Ho una domanda sulla struttura ad albero. Sono riuscito a tornare indietro in questa riga e ho individuato la casella di testo (1), tuttavia con la modifica della distribuzione ricevo un errore durante l'esecuzione di questo script. Non riesco a individuare le parti da rimuovere.. Allego la tabella dati e lo script modificato che include la funzione di distribuzione.
( GB << rapporto superiore )[ Casella di testo ( 1 )] << eliminare ; //elimina l'istruzione where
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseGrazie per il consiglio/codice.. questa settimana ci provo.. Ho una scadenza fissa per dimostrare l'estrazione dei dati, il formato della tabella e l'output del grafico. Il tuo aiuto ha aumentato notevolmente le probabilità di successo
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseCome ho accennato nella mia risposta precedente, " Puoi creare una scala fissa o utilizzare un algoritmo preferito per trovare la scala migliore per i dati a portata di mano. " Di seguito è riportata la funzione gd_inc() creata per lo script 7_InteractiveDisplays_Alternates.jsl (per il libro JSL Companion, 2a edizione).
È una semplificazione delle funzioni che utilizzo durante la codifica di un'applicazione in cui l'intervallo di valori è sconosciuto.Questo script presuppone che il formato decimale fisso funzionerà. Uno script più generale determinerebbe, se ci sono troppi decimali, quindi passare alla notazione scientifica o passare a una scala logaritmica ecc. Prima di usarlo, dovresti provarlo.
Gli argomenti sono Basso, Alto e Numero di incrementi. Restituisce un vettore con valore inc, #di decimali per il formato e la lunghezza massima; nello script completo viene utilizzato per l'asse x e l'orientamento viene modificato in base alla sua lunghezza. Oppure la lunghezza potrebbe essere utilizzata per attivare se è necessario utilizzare qualcos'altro diverso dal formato decimale fisso.
gd_inc = Function({xlo, xhi, ntic}, {sp,tt, yrnd, ginc, ndec,lc, ll},
sp = (xhi - xlo)/ntic;
tt = log10(sp);
yrnd = If(
tt > 0, 1 - Floor( tt ),
Abs( Floor( tt ) - 1 )
);
ginc =round(sp,yrnd);
ndec = length(word(2,char(ginc),"."));
lc = length(word(1,char(xhi),"."));
if(ndec>0, lc=lc+ndec+1);
if(xlo <0, lc++); //add 1 character for the negative sign
ll=[1,1,1];
ll[1] = ginc; //increment
ll[2] = ndec; //# decimals
ll[3] = lc; //character length
ll
); // end gd_inc
/* test cases
show(gd_inc(1,11,10), gd_inc(.001, .005, 10), gd_inc(10000,20200, 10) )
*/Una volta ottenuti i risultati, modifica lo script
_yscl = gd_inc(Lo,Hi, 10);
_xx[1] << Axis Setings( {Min( Lo ), Max( Hi ), Inc( _yscl[1] ),
Minor Ticks( 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} ),
Format("Fixed Dec",12,_yscl[2])
});
JMP fa un buon lavoro di ridimensionamento automatico, il motivo per cui il ridimensionamento è troppo ampio per il tuo graphbuilder è che si ridimensiona per poter visualizzare i punti e non solo le curve smussate. Un'opzione è ottenere i valori della curva spline e semplicemente tracciarli.
Se scegli di farlo non per farlo dovrai trovare il massimo e il minimo delle curve e dovrai decidere se vuoi che tutti i grafici per Y_i abbiano la stessa scala, o se ogni Y_i e Test devono avere la stessa scala o ogni grafico la propria scala.La funzione JMP Spline Smooth() restituisce i valori della spline ed è possibile trovare il massimo e il minimo per ciascuna curva possibile, quindi ottenere il massimo e il minimo in generale. Ciò fornirà Lo e Hi e in genere utilizzo 10 per il numero di incrementi.
Quindi usa la funzione gd_inc() e modifica.Se conosci i valori basso e alto, crea una tabella o delle costanti per ogni Y.
Il ridimensionamento personalizzato può creare confusione con più curve e curve personalizzate come le spline.Se avrò tempo, allegherò uno script aggiornato per i tuoi dati fittizi.
A proposito, non sono sicuro di quanto possano essere realistici i tuoi dati fittizi. Il confronto di più grafici in PowerPoint può creare confusione.GraphBuilder è utile per confrontare i grafici. Invece di numerosi grafici, forse potrebbe essere utile qualche confronto (non necessariamente quello sotto). Di seguito sono riportati Y_3 rispetto ai canali, per Test e diversi valori di X.

Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diversenon ho caricato la tabella...
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseHo appena provato la tua soluzione. Di solito eseguo il salvataggio dello script nella finestra in modo da poter vedere come dovrebbe apparire il grafico.
Ho allegato dati fittizi modificati per darti un'idea di cosa esattamente sto cercando di realizzare.
Con i 15 canali e in questo caso 2 stati di test che hanno uscite diverse, non riesco a vedere una soluzione valida per tutti.
Fammi sapere cosa ne pensi, per favore.
Questo particolare test ha 3 uscite. che devo valutare separatamente.
Davide
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseDavvero apprezzato.. stasera lo provo..
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diversePuoi creare una scala fissa o utilizzare un algoritmo preferito per trovare la scala migliore per i dati a portata di mano.
Di seguito è allegata una versione modificata dello script precedentemente fornito. Il nuovo codice è riportato di seguito.Nota, per i dati fittizi, il miglior ridimensionamento è probabilmente da -8 a 8, tuttavia, ho scelto -7 per dimostrare che diversi grafici potrebbero essere ritagliati.
_xx = gb<< Xpath("//ScaleBox[@charID='Y']");
_xx[1] << Axis Setings({Min( -7 ), Max( 8 ), Inc( 1 ), Minor Ticks( 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )});Esistono diversi metodi per capire come inserire una modifica nello script. Il modo più semplice è creare uno script per un grafico, quindi utilizzare la GUI
cambiare gli assi, i titoli o le legende. Quindi dal triangolo rosso rovesciato (sul contorno del generatore di grafici) seleziona Salva copione > Alla finestra dello script . Usando questo metodo mostrerà un argomento Dispatch.Vedi sotto.
Graph Builder(
Size( 1242, 709 ),
Show Control Panel( 0 ),
Variables( X( :X ), Y( :Y ), Group X( :Wafer ID ), Overlay( :RowCol ) ),
Elements( Smoother( X, Y, Legend( 19 ) ) ),
Where( dt:Channel == chnl & dt:Test State == tst ),
SendToReport(
Dispatch(
{},
"Graph Builder",
OutlineBox,
{Set Title( "Results for Channel=1 and Test State=1" )}
),
Dispatch(
{},
"Y",
ScaleBox,
{Min( -7 ), Max( 8 ), Inc( 1 ), Minor Ticks( 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
)
)
);Poiché il titolo è personalizzato, rimuovi Dispatch in OutlineBox, quindi utilizza questo codice nel ciclo for e ogni grafico avrà lo stesso ridimensionamento specificato nel tuo script.
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diversePosso farti un'altra domanda relativa al ciclo For() con i grafici?
Esiste un modo per adattare al meglio la scalabilità automatica?
Se riesco a ottenere la scala nell'esempio da Min = 5 e Max = 30 possiamo avere un'idea migliore di come si comportano esattamente le parti attraverso le frequenze...
Ovviamente dovrò rimuovere prima i valori anomali..
Grazie
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseNon posso ringraziarti abbastanza per il tuo aiuto con questo.. Nessuno qui al lavoro potrebbe dirmi nemmeno lontanamente come fare quello che hai fatto tu...
Con questo hai ridotto il tempo necessario per farlo almeno dell'80%.
La tua soluzione e gli script SQL che sto scrivendo per accedere ai file del nostro database ci metteranno in una posizione fantastica con il nostro cliente.
Grazie ancora..
D
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseGrazie per la risposta. Userò i tuoi esempi per vedere se riesco a capirlo..
Ho provato a utilizzare l'istruzione "seleziona dove" e ha funzionato abbastanza bene..Stavo solo cercando di ridurre la quantità di codice che avrei dovuto scrivere.. Ho 5 test diversi con tutti i parametri sopra elencati..
Riferirò quando lo proverò.
Grazie ancora..
Ri: JSL - Genera -xy Plot che scorre attraverso colonne con variabili diverseCIAO,
Consiglierei di modificare il tuo approccio per generare i grafici per utilizzare le istruzioni where invece del filtro dati.Il filtro dati è ottimo per l'analisi visiva interattiva, tuttavia, poiché la tua vista è invisibile, ti suggerisco di utilizzare un'istruzione where.Quando viene utilizzata un'istruzione where, è visibile una casella di testo where; può essere cancellato. È inoltre possibile utilizzare un argomento By, By(:Channel, :Test State). Quindi lo script deve accedere a ciascun GB e salvare la presentazione.
Non sono un fan di Save Presentation, mi piace usare P3ICLI, un programma a riga di comando esterno gratuito per creare diapositive PPTX dal mio output JMP. Vedere Esempio JSL per creare PPTX utilizzando P3ICLI . Come ogni codice sembra disordinato, ma può essere creato in modo molto personalizzato e può controllare il dimensionamento del grafico e del titolo.
Tuttavia, per il salvataggio di più trame utilizzando Salva presentazione, abbiamo scritto alcuni trucchi per inserire nel journal più visualizzazioni di layout come immagini, utilizzare il salvataggio della presentazione, ma devi giocare con il dimensionamento.
In ogni caso, in allegato c'è una tabella dati fittizia per emulare il tuo scenario e due script, ciascuno dei quali salva un'immagine per pagina
Spero che questo ti aiuti.