Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLQuando sono presenti dati anomali, il mio grafico viene sempre ridimensionato al punto mix o massimo, il che rende il grafico non visibile.
È possibile utilizzare lo script JSL per impostare dinamicamente l'asse Y del grafico di variabilità in base ai parametri limite USL e LSL già incorporati nei parametri? Per favore consiglio. Grazie
Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLÈ necessario verificare se è presente il numero corretto di colonne, ecc. prima del codice che causa l'avviso, quindi aggiungere il codice necessario per gestire il problema.Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLCome gestire "JMP Alert" nel caso in cui richiamo solo un elemento/colonna?
Il "ciclo for" provoca questo avviso
Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLRi: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLCosì facendo, ho la sensazione che la visualizzazione dei grafici richieda più tempo.
Grazie ancora per il vostro sostegno!
Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLMi sembra a posto. Non sono esattamente sicuro di altri miglioramenti, poiché non conosco i dati.Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLCiao Jim,
Grazie mille per il tuo supporto!
Ho migliorato il tuo codice in questo modo, per grafici dall'aspetto migliore:
owr[i][AxisBox( 2 )] << Min( spec["LSL"] - 0.1 * (spec["USL"] - spec["LSL"]) ) <<
Max( spec["USL"] + 0.1 * (spec["USL"] - spec["LSL"]) ) << Inc( (spec["USL"] - spec["LSL"]) / 10 );
owr[i][AxisBox( 2 )] << Format( Best, 6 );
È qualcosa che faresti anche tu?
O c'è un modo più elegante?
Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLConsulta lo script seguente per le modifiche necessarie per gestire le nuove richieste.Nella maggior parte dei casi, qualsiasi elenco di colonne potrà essere sostituito in una richiesta della piattaforma, con una funzione Eval(), che esprime l'elenco in JMP.Vedi il
Eval( colList )
nello script qui sotto.
Supponendo che tu abbia letto la sezione sugli alberi di visualizzazione nella Guida agli script, i messaggi che possono essere passati agli oggetti di visualizzazione sono documentati con esempi nell'indice degli script
Aiuto==>Indice degli script
Esaminando i messaggi per AxisBox(), vedrai tutti i messaggi disponibili.Tra cui Inc().È questa modifica dell'incremento dell'asse che viene utilizzata per assicurare i valori nel grafico dopo aver modificato i valori minimo e massimo dell'asse.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colList = {"NPN1", "PNP1"};
For( i = 1, i <= N Items( colList ), i++,
// Turn on Show Limits
spec = Column( dt, colList[i] ) << Get Property( "Spec Limits" );
If( Is Empty( spec ) == 0,
LSL = Try( spec["LSL"], . );
USL = Try( spec["USL"], . );
Target = Try( spec["Target"], . );
Eval(
Substitute(
Expr(
Column( dt, colList[i] ) << Set Property(
"Spec Limits",
{LSL( __LSL__ ), USL( __USL__ ), Target( __Target__ ), Show Limits( 1 )}
),
),
Expr( __LSL__ ), LSL,
Expr( __USL__ ), USL,
Expr( __Target__ ), Target
)
);
);
);
// create the graphs
ow = Oneway(
Y(
eval(colList)
),
X( :site ),
All Graphs( 0 ),
Plot Quantile by Actual( 1 ),
Line of Fit( 0 ),
Std Dev Lines( 1 ),
Legend( 0 ),
SendToReport(
Dispatch(
{"Normal Quantile Plot"},
"Oneway QuantilePlot",
FrameBox,
{Row Legend(
Corner,
Color( 1 ),
Color Theme( "" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);
owr = ow << report;
// adjust the axes
For( i = 1, i <= N Items( owr ), i++,
spec = Column( dt, colList[i] ) << Get Property( "Spec Limits" );
(owr[i])[AxisBox( 2 )] << Min( spec["LSL"] ) << Max( spec["USL"] )
<< inc ((spec["USL"] - spec["LSL"]) / 10 );
);Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLGrazie! Ha funzionato.
1)
Potresti anche aiutarmi a regolare le impostazioni dell'asse x con l'aiuto di uno script?
Non ci sono valori tra LSL e USL.
Forse esiste una strategia per regolare automaticamente l'asse x con un incremento Tick/Bin significativo?
2)
E' possibile dare? colList = { "NPN1" , "PNP1" } ; A
ahi = Senso Unico (
Y (
: Nome ( "NPN1" ) ,
: Nome ( "PNP1" )
) , --> invece di :Name(), :Name()

Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLEcco uno script che dovrebbe mostrarti come ottenere gli assi specificati correttamente.Il nuovo apprendimento che dovrai studiare è la manipolazione degli alberi di visualizzazione.Ciò è documentato nella Guida allo scripting disponibile nella libreria della documentazione JMP
Guida==>Libreria della documentazione JMP

Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
colList = {"NPN1","PNP1"};
For(i=1,i<=N Items(colList),i++,
// Turn on Show Limits
spec = column(dt,colList[i]) << Get Property( "Spec Limits" );
If( Is Empty( spec ) == 0,
LSL = Try( spec["LSL"], . );
USL = Try( spec["USL"], . );
Target = Try( spec["Target"], . );
Eval(
Substitute(
Expr(
column(dt, colList[i]) <<
Set Property(
"Spec Limits",
{LSL( __LSL__ ), USL( __USL__ ),
Target( __Target__ ), Show Limits( 1 )}
),
),
Expr( __LSL__ ), LSL,
Expr( __USL__ ), USL,
Expr( __Target__ ), Target
)
);
);
);
// create the graphs
ow = Oneway(
Y(
:Name( "NPN1" ),
:Name( "PNP1" )
),
X( :site ),
All Graphs( 0 ),
Plot Quantile by Actual( 1 ),
Line of Fit( 0 ),
Std Dev Lines( 1 ),
Legend( 0 ),
SendToReport(
Dispatch(
{"Normal Quantile Plot"},
"Oneway QuantilePlot",
FrameBox,
{Row Legend(
Corner,
Color( 1 ),
Color Theme( "" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
);
owr = ow << report;
// adjust the axes
For( i=1, i<= n items(owr),i++,
spec = column(dt,colList[i]) << Get Property( "Spec Limits" );
(owr[i])[AxisBox(2)] << min(spec["LSL"])<<MAX></MAX>
Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLCIAO,
come modificare questo script di seguito per ridimensionare automaticamente il grafico su LSL e USL.
@martindemel

Oneway(
Y(
:Name( "test1" ),
:Name( "testn" )
),
X( :Corner ),
All Graphs( 0 ),
Plot Quantile by Actual( 1 ),
Line of Fit( 0 ),
Std Dev Lines( 1 ),
Legend( 0 ),
SendToReport(
Dispatch(
{"Normal Quantile Plot"},
"Oneway QuantilePlot",
FrameBox,
{Row Legend(
Corner,
Color( 1 ),
Color Theme( "" ),
Marker( 0 ),
Marker Theme( "" ),
Continuous Scale( 0 ),
Reverse Scale( 0 ),
Excluded Rows( 0 )
)}
)
)
)Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLCIAO,
Desidero utilizzare la stessa soluzione per i miei grafici di tendenza, ma riscontro problemi di sintassi.
qualcuno sa quali campi devo modificare se il nome della colonna dei miei limiti è: "CENTERLINE", "LCL_HS", "UCL_HS"?
e anche se ho bisogno di aggiustamenti se sto creando un grafico bivariato per colonne?
Grazie!
Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLGrazie Jim. Funziona perfettamente!Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLEcco uno script di esempio che mostra il codice preciso sull'utilizzo di USL e LSL per configurare le impostazioni degli assi Max e Min.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/semiconductor capability.jmp" );
// Turn on Show Limits
spec = dt:NPN1 << Get Property( "Spec Limits" );
If( Is Empty( spec ) == 0,
LSL = Try( spec["LSL"], . );
USL = Try( spec["USL"], . );
Target = Try( spec["Target"], . );
Eval(
Substitute(
Expr(
dt:NPN1 <<
Set Property(
"Spec Limits",
{LSL( __LSL__ ), USL( __USL__ ),
Target( __Target__ ), Show Limits( 1 )}
),
),
Expr( __LSL__ ), LSL,
Expr( __USL__ ), USL,
Expr( __Target__ ), Target
)
);
);
// Build the Chart
vc = Variability Chart(
Y( :NPN1 ),
X( :lot_id ),
Max Iter( 100 ),
Conv Limit( 0.00000001 ),
Number Integration Abscissas( 128 ),
Number Function Evals( 65536 ),
Analysis Type( "Choose best analysis (EMS REML Bayesian)" ),
Std Dev Chart( 1 )
);
// Set the Min and Max
Report( vc )[axisbox( 1 )] << Max( spec["USL"] );
Report( vc )[axisbox( 1 )] << Min( spec["LSL"] );Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLCiao TXnelson,
Grazie per il consiglio. Ma sfortunatamente non è la soluzione che cerco. La casella dell'asse richiederà all'utente di inserire manualmente il valore min/max. Voglio che JSL si occupi del ridimensionamento automatico in base alle specifiche LSL e USL incorporate nei parametri senza interazione umana.
C'è qualche opzione per farlo?
Ri: Ridimensionamento automatico dell'asse Y del grafico della variabilità in base al limite delle specifiche USL e LSLLa risposta semplice è sì...vedi
Aiuto==>Indice script==>Riquadro degli assi
Di seguito è riportato un esempio dell'indice di scripting che utilizza Bivariate, ma la stessa funzionalità è disponibile per il grafico della variabilità
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Big Class.jmp" );
biv = Bivariate(
Y( :weight ),
X( :height ),
FitLine
);
rbiv = biv << report;
axisbox = rbiv[axis box( 1 )];
axisbox << Max( 120 );