Come posso implementare l'utilizzo di JSL?Ciao a tutti,
Come faccio a implementare i passaggi come descritto nell'excel (allegato) utilizzando JSL? Ho anche allegato qualche script JSL che potrebbe essere utile per ottenere alcuni dei passaggi intermedi che sto cercando di implementare usando JSL, quindi puoi copiarlo se è pertinente e utile?
Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where(
:Case == "C",
Fit Special( yTran( "Log" ), {Line Color( "Black" )} )
),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where(
:Case == "E",
Fit Special( yTran( "Log" ), {Line Color( "Blue" )} )
),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
)Ri: Come posso implementare usando JSL?Ciao Jim,
Sto provando a fare un grafico log-lineare (registro sull'asse Y) per un caso = A / B / C e una seconda condizione è soddisfatta in Column2 == "20/30/40". Ho postato lo script qui sotto (2 modi leggermente diversi) ma sto ricevendo un errore come di seguito. Dove sto andando male?
Inaspettato "e CPP". Forse manca un "," o ")".
Cercando di analizzare gli argomenti della funzione "Fit Where".
Riga 6 colonna 28:: caso == "A" ►e colonna2 == "20",
1. 1o modo:
bivariate (
Y (: Nome ("Y1")),
X (: X1),
// Adatta speciale (yTran ("Registro"), {Colore linea ({213, 72, 87})}),
Adatta dove (
: Caso == "A" e Column2 == "20",
Fit Special (yTran ("Log"), {Line Color ("Dark Green")}),
),
SendToReport (
Spedizione(
{},
"1",
scalebox,
{Min (60,936357421875), Max (81,283232421875), Inc (2),
Tick secondari (1), Label Row (
{Mostra griglia principale (1), Mostra griglia secondaria (1)}
)}
),
Spedizione(
{},
"2",
scalebox,
{Scala ("Registro"), Formato ("Scientifico", 11), Min (0,0000002),
Max (0.000634968347287381), Inc (1), Tick secondari (1),
Riga dell'etichetta (
{Mostra griglia principale (1), Mostra griglia secondaria (1), Imposta dimensione carattere (12)}
)}
)
)
)
2. 2o modo:
bivariate (
Y (: Nome ("Y1")),
X (: X1),
// Adatta speciale (yTran ("Registro"), {Colore linea ({213, 72, 87})}),
Adatta dove (
: Caso == "A"
: Column2 == "20",
Fit Special (yTran ("Log"), {Line Color ("Dark Green")}),
),
SendToReport (
Spedizione(
{},
"1",
scalebox,
{Min (60,936357421875), Max (81,283232421875), Inc (2),
Tick secondari (1), Label Row (
{Mostra griglia principale (1), Mostra griglia secondaria (1)}
)}
),
Spedizione(
{},
"2",
scalebox,
{Scala ("Registro"), Formato ("Scientifico", 11), Min (0,0000002),
Max (0.000634968347287381), Inc (1), Tick secondari (1),
Riga dell'etichetta (
{Mostra griglia principale (1), Mostra griglia secondaria (1), Imposta dimensione carattere (12)}
)}
)
)
)
Grazie,
ANNO DOMINI
Ri: Come posso implementare usando JSL?Ciao Jim, ho provato entrambi (uno alla volta)
dt << Marker per colonna (: Wafer ID);
dt << Indicatore per gruppo (: Wafer ID);
prima di fare le trame come sotto, ma non fa quello che voglio
Biv = dtStack << bivariate (
Y (...
Grazie,
ANNO DOMINI
Ri: Come posso implementare usando JSL?Grazie mille Jim per le tue chiare spiegazioni. Fammi provare.
Saluti,
ANNO DOMINI
Ri: Come posso implementare usando JSL?Per quanto riguarda la tua funzione Open (), se la tua tabella di dati JMP è salvata nella tua cartella Documenti e si chiama "nomefile.jmp", allora è corretta.
Il codice
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
sta semplicemente usando la piattaforma Tabella dati stack
Tabelle ==> Pila
Puoi eseguirlo manualmente sulla tua tabella di dati e ottenere gli stessi risultati dello script. Ma fondamentalmente, ci sono 2 serie di colonne da impilare, x1, x2, x3 e le stesse varianti y di y1, y2, y3. Quindi la specificazione delle 6 colonne nella specifica Columns () e l'impostazione di Number of Series (2). L'elemento Contigous indica di dividere l'elenco nel mezzo, invece di alternare tra x1, y1 ..... ecc. Quando impilate un insieme di colonne, le misure vengono inserite in una nuova colonna denominata Data. E i nomi delle colonne vengono inseriti in una nuova colonna denominata Label. Dato che stiamo impilando 2 serie di colonne, ci sono colonne Data e Data 2, Etichetta e Etichetta 2.
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Questo codice elimina solo le colonne Label e Label 2, poiché non ne abbiamo bisogno, quindi Data e Data 2 vengono rinominati in nomi più significativi.
È possibile leggere informazioni sulla piattaforma stack nel documento Using JMP
Aiuto ==> Libri ==> Uso di JMP
Ri: Come posso implementare usando JSL?Ciao Jim,
Ho aperto il mio file excel e salvato come foglio di lavoro JMP. Allora sto usando
dt = Aperto ( "C: \ Users \ nome utente \ Documenti \ filename.jmp" );
Questo formato è corretto?
Penso di non essere in grado di ottenere la trama dopo aver implementato il tuo codice, ho bisogno di capire meglio il tuo codice perché i miei parametri di set di dati sono leggermente diversi nei nomi dei parametri ecc.
Puoi spiegare cosa sono "Etichetta", "Etichetta2", Dati, Dati 2? Devo definirli esplicitamente nel mio set di dati. A partire da ora, non sono definiti. Non li vedo definiti nelle tabelle dei set di dati che hai creato anche.
dtStack = dtSumm << Pila (
colonne (: x1,: x2,: x3,: y1,: y2,: y3),
Colonna dell'etichetta di origine ( "Etichetta" ),
Colonna dei dati in pila ( "Dati" ),
Nome ( "Colonne non impilate" ) (Mantieni (: caso)),
Numero di serie ( 2 ),
contiguo
);
// Pulisci tabella dati
dtStack << elimina colonne ({ "Etichetta" , "Etichetta 2" });
dtStack: dati << imposta nome ( "X1_x2_x3" );
dtStack: dati 2 << imposta nome ( "Y1_y2_y3" );
Saluti,
ANNO DOMINI
Ri: Come posso implementare usando JSL?Come si presenta il layout del foglio di calcolo? Se è una tabella di righe e colonne ... come una tabella di dati JMP, la sintassi è solo:
dt = open("<PATH to="" your="" excel="" file="">");</PATH>Ri: Come posso implementare usando JSL?Ciao Jim,
Oh! Capisco .... peccato che non me ne rendessi conto. Grazie mille per aver spiegato questo. Suona bene ! Sto leggendo i dati da un file Excel in JMP. C'è un modo intelligente per farlo?
Saluti,
Anno Domini
Ri: Come posso implementare usando JSL?OK .... avrei dovuto essere più chiaro. Tutto il codice che ho fornito che crea la tabella di dati è stato messo lì, solo per essere in grado di creare una tabella di dati di esempio per dimostrare il codice. Puoi inserire la tabella dei dati direttamente da Excel o ovunque tu abbia i tuoi dati. L'unica parte reale dello script è necessaria, una volta letti i tuoi dati, è:
// Create the Median Table
dtSumm = dt << Summary(
Group( :Case ),
Median( :x1 ),
Median( :x2 ),
Median( :x3 ),
Median( :y1 ),
Median( :y2 ),
Median( :y3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Biv = dtStack << Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where( :Case == "C", Fit Special( yTran( "Log" ), {Line Color( "Black" )} ) ),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where( :Case == "E", Fit Special( yTran( "Log" ), {Line Color( "Blue" )} ) ),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
);
A proposito, che metodo stai usando per inserire i dati? Se hai un problema con questo, possiamo lavorare anche su questo.
Ri: Come posso implementare usando JSL?Ciao Jim,
Grazie per la tua soluzione veloce! Ho qualche altra domanda, se puoi aiutarmi per favore.
Mi chiedo se questo script JSL si scalerà facilmente per grandi serie di dati.
1. Sembra che tu abbia codificato il numero di istanze di ciascun caso "A", "B", .... "F".
Va bene farlo se hai 2-3 istanze di ogni caso, ma cosa succede se ho più come 100 di istanze ciascuna per "A", "B" .. "F". Quindi devo ripetere "A" centinaia di volte nel codice qui sotto?
Imposta valori (
{ "UN" , "UN" , "UN" , "B" , "B" , "B" , "C" , "C" , "C" , "D" , "D" , "D" , "E" , "E" ,
"E" , "F" , "F" , "F" }
2. Hai anche inserito ciascuno dei valori per le variabili di colonna: "x1", "x2" .... "" y3 "come mostrato di seguito. Ancora una volta, ho> 1000 righe di dati per ciascuna delle variabili. Quindi digitare tutti i valori di ciascuna variabile sembra più complicato.
Nuova colonna ( "X1" ,
Numerico,
"Continuo" ,
Formato ( "Migliore" , 12 ),
Imposta valori (
[ 1,61428690437666 , 10,1190080125253 , 6,73662807021899 , 8,01466805846589 ,
6,68158041069847 , 5,7112128821412 , 2,84688009253613 , 8,24143884561082 ,
7,93797713835799 , 7,60500406538651 , 6,10376724167353 , 7,49901866647003 ,
6,75689551558008 , 8,47900118679714 , 8,31129239105815 , 2,25776032554558 ,
3,47918899345697 , 7,54113635144146 ]
Puoi per favore aiutarmi a farmi sapere se c'è un modo meno ingombrante per implementarlo per dataset più grandi?
Saluti,
ANNO DOMINI
Ri: Come posso implementare usando JSL?Ciao Jim,
Grazie mille per la tua risposta dettagliata. Lo apprezzo, fammi provare e ti farò sapere.
Saluti,
ANNO DOMINI
Ri: Come posso implementare usando JSL?Ecco un semplice script che genera le tabelle e l'output che desideri

Names Default To Here( 1 );
//dt = Current Data Table();
dt = New Table( "Example",
Add Rows( 18 ),
New Column( "Case",
Character,
"Nominal",
Set Values(
{"A", "A", "A", "B", "B", "B", "C", "C", "C", "D", "D", "D", "E", "E",
"E", "F", "F", "F"}
)
),
New Column( "x1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[1.61428690437666, 10.1190080125253, 6.73662807021899, 8.01466805846589,
6.68158041069847, 5.7112128821412, 2.84688009253613, 8.24143884561082,
7.93797713835799, 7.60500406538651, 6.10376724167353, 7.49901866647003,
6.75689551558008, 8.47900118679714, 8.31129239105815, 2.25776032554558,
3.47918899345697, 7.54113635144146]
)
),
New Column( "x2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[5.47938474920207, 6.18766439511594, -6.23767012529314, 2.09002457182833,
4.8113689086524, 7.03651072603935, -3.04550198990374, 11.8452893346908,
-3.05733149292515, 1.30049361512582, 1.01507442873964, 2.09317649939774,
7.41286830274582, 7.34393706953047, 6.35773586672512, 6.45581826439945,
14.9562095399741, 10.0634660675686]
)
),
New Column( "x3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[11.2656869903562, 2.97417375436776, 2.7691367152201, 9.75641926280114,
9.70879299538533, 7.16035571615696, 9.79872763007834, 2.99361815483094,
7.34989095258795, 11.8347155967071, 13.840944548243, 6.91213509473278,
12.9829334337807, 4.69016477226892, 6.5541527241742, 10.449257706405,
8.71860875295487, 2.75703552707507]
)
),
New Column( "y1",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.0000000021187715823, 0.0000000007070458434, 0.0000000021305415897,
0.000000002187751479, 0.0000000015163549964, 0.0000000006662765716,
0.0000000013568530851, 0.0000000022185225971, 0.0000000008126367887,
0.0000000014370349256, 0.0000000025500410724, 0.0000000019674810787,
-0.0000000005869971784, 1.82706897276242e-10, 0.0000000014877347984,
6.66831811738687e-11, 0.000000001044052589, 0.0000000019169076496]
)
),
New Column( "y2",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values(
[0.0000000111634035809, 0.0000000150934383918, 0.0000000092632031811,
0.0000000014897580792, 0.0000000129447047918, 0.0000000038471184132,
0.000000020378302554, 0.0000000084939824652, 0.0000000306867238143,
0.0000000083704926078, -0.0000000019845073029, 0.0000000221987482462,
-1.12731592825071e-10, 0.0000000341691546291, 0.0000000243189078007,
0.0000000142112672565, 0.0000000157219085064, 0.0000000163609065787]
)
),
New Column( "y3",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Selected,
Set Values(
[0.0000001356080410826, 0.0000003110230604448, 0.0000000731675260394,
0.0000000683020170167, 0.0000000166660984052, 0.0000001245784167858,
0.0000001917424143272, 0.0000000592217777822, 0.0000000682651021339,
0.0000001310868753601, 0.0000000929550618751, 0.0000001752103336127,
0.0000000988598859477, 0.0000000990272186345, 0.000000121745118966,
0.0000001243361078368, 0.0000001992144095096, 0.000000090951358824]
)
)
);
// Create the Median Table
dtSumm = dt << Summary(
Group( :Case ),
Median( :x1 ),
Median( :x2 ),
Median( :x3 ),
Median( :y1 ),
Median( :y2 ),
Median( :y3 ),
Freq( "None" ),
Weight( "None" ),
statistics column name format( "column" ),
Link to original data table( 0 )
);
dtStack = dtSumm << Stack(
columns( :x1, :x2, :x3, :y1, :y2, :y3 ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
Name( "Non-stacked columns" )(Keep( :Case )),
Number of Series( 2 ),
Contiguous
);
// Clean Up data table
dtStack << delete columns( {"Label", "Label 2"} );
dtStack:Data << set name( "x1_x2_x3" );
dtStack:Data 2 << set name( "y1_y2_y3" );
Biv = dtStack << Bivariate(
Y( :y1_y2_y3 ),
X( :x1_x2_x3 ),
Fit Where(
:Case == "A",
Fit Special( yTran( "Log" ), {Line Color( "Dark Green" )} )
),
Fit Where(
:Case == "B",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Red" )} )
),
Fit Where( :Case == "C", Fit Special( yTran( "Log" ), {Line Color( "Black" )} ) ),
Fit Where(
:Case == "D",
Fit Special( yTran( "Log" ), {Line Color( "Magenta" )} )
),
Fit Where( :Case == "E", Fit Special( yTran( "Log" ), {Line Color( "Blue" )} ) ),
Fit Where(
:Case == "F",
Fit Special( yTran( "Log" ), {Line Color( "Medium Dark Cyan" )} )
),
SendToReport(
Dispatch(
{},
"1",
ScaleBox,
{Min( 2.318802 ), Max( 6.35577464892554 ), Inc( 0.5 ), Minor Ticks( 1 ),
Add Ref Line( 0.526, "Solid", "Black", "yref_1", 1 ),
Add Ref Line( 1.21, "Solid", "Black", "yref_2", 1 ),
Add Ref Line( 2.421, "Solid", "Black", "yref_3", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Log" ), Format( "Scientific", 11, 0 ), Min( 0.0000000003 ),
Max( 0.00001144934215806 ), Inc( 1 ), Minor Ticks( 1 ),
Add Ref Line( 0.000000579, "Solid", "Black", "x_ref3", 1 ),
Add Ref Line( 0.000000053, "Solid", "Black", "x_ref2", 1 ),
Add Ref Line( 0.0000000075, "Solid", "Black", "xref_1", 1 ),
Label Row( {Show Major Grid( 1 ), Show Minor Grid( 1 )} )}
),
Dispatch(
{},
"Bivar Plot",
FrameBox,
{DispatchSeg( Line Seg( 1 ), {Line Color( "Dark Green" )} ),
DispatchSeg( Line Seg( 6 ), {Line Color( "Medium Dark Red" )} ),
DispatchSeg( Line Seg( 11 ), {Line Color( "Black" )} ),
DispatchSeg( Line Seg( 16 ), {Line Color( "Magenta" )} ),
DispatchSeg( Line Seg( 21 ), {Line Color( "Blue" )} ),
DispatchSeg( Line Seg( 26 ), {Line Color( "Medium Dark Cyan" )} )}
)
)
);Ri: Come posso implementare usando JSL?Ciao Jim,
Come posso selezionare uno stile di marcatore diverso (*, z, x ecc.) E un colore di marcatore (rosso / blu) per ciascun caso (A / B / C) e implementarlo usando JSL? Posso assegnare manualmente uno stile e un colore di marcatore a ciascuna riga della tabella JMP in pila, ma può essere facilmente eseguito in JSL?