Come eseguire i comandi JSL dopo che le condizioni sono soddisfatte?Cari utenti della comunità JMP,
Sono nuovo di JMP e ho riscontrato un problema. Spero di poter ricevere aiuto da voi ragazzi.
Ho una tabella dati. Vorrei eseguire un generatore di grafici per colonne solo alcuni valori specifici.
Ad esempio, vorrei selezionare le celle che appartengono alle colonne AB766 e RSDF "monitor_set_name" e "measurement_set_name" e altre colonne e righe corrispondenti a "AB766" e "RSDF"

Quindi, vorrei eseguire "Graph builder" per la tabella che contiene le informazioni di cui ho bisogno.
Se "monitor_set_name" e "measurement_set_name" non contengono "AB766" e "RSDF", salterò all'esecuzione del "graph builder"
Potresti darmi qualche consiglio?
Cordiali saluti,
Tabella datiScriptingRe: Come eseguire i comandi JSL dopo che le condizioni sono soddisfatte?Per generare il JSL di seguito, ho semplicemente eseguito i passaggi in modo interattivo, quindi ho preso il codice dal registro e l'ho incollato in una finestra di script.
names default to here(1);
// Open Data Table: big class.jmp
// → Data Table( "big class" )
Open( "$SAMPLE_DATA/big class.jmp" );
// Select matching cells
Data Table( "big class" ) << Select Where( :age == 12 & :sex == "F" );
// Subset data table
// → Data Table( "Subset of big class" )
Data Table( "big class" ) << Subset( Selected Rows( 1 ), Selected columns only( 0 ) );
// Report snapshot: Subset of big class - Graph Builder
Data Table( "Subset of big class" ) << Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 3 ) ), Smoother( X, Y, Legend( 4 ) ) )
);
// Invert current selection
Data Table( "big class" ) << Invert Row Selection;
// Subset data table
// → Data Table( "Subset of big class 2" )
Data Table( "big class" ) << Subset( Selected Rows( 1 ), Selected columns only( 0 ) );
// Report snapshot: Subset of big class 2 - Graph Builder
Data Table( "Subset of big class 2" ) <<
Graph Builder(
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 6 ) ), Smoother( X, Y, Legend( 7 ) ) )
);
Re: Come eseguire i comandi JSL dopo che le condizioni sono soddisfatte?Ciao,
Se non conosci JMP, assicurati di controllare il filtro dati locale e il selettore di colonne. Il filtro dei dati locali probabilmente ti aiuterà qui... Ho incluso uno switcher di colonna nel mio esempio solo per farti sapere cosa può fare.
Basta fare clic sulle voci del menu per limitare il grafico ai dati che si desidera considerare. Non è richiesta alcuna codifica ed è facile da usare... chiunque può usarli.
Per ottenere il filtro dati locali, dal menu del triangolo rosso di Graph Builder selezionare Aggiungi filtro dati locali.
Per ottenere il selettore di colonne, seleziona Ripristina > Selettore di colonne dal menu principale. Dovrai anche selezionare la colonna che desideri sostituire e le colonne tra le quali desideri ruotare. Assicurati di includere la colonna che desideri sostituire in questo set. Tutte le colonne devono essere dello stesso tipo di dati.
Esegui lo script di seguito per dare un'occhiata a questi in azione.
Saluti,
Brady

Names Default To Here(1);
dt = open ("$Sample_Data\Car Physical Data.jmp");
Graph Builder(
Size( 526, 448 ),
Show Control Panel( 0 ),
Variables( X( :Country ), Y( :Gas Tank Size ) ),
Elements( Box Plot( X, Y, Legend( 8 ) ), Points( X, Y, Legend( 9 ) ) ),
Local Data Filter(
Show Histograms and Bars( 0 ),
Add Filter(
columns( :Type ),
Where( :Type == "Compact" ),
Display( :Type, N Items( 5 ) )
)
),
Column Switcher(
:Gas Tank Size,
{:Weight, :Turning Circle, :Displacement, :Horsepower, :Gas Tank Size}
)
);
Re: Come eseguire i comandi JSL dopo che le condizioni sono soddisfatte?Caro txnelson,
Funziona. Apprezza molto.
Cerco di seguire la tua guida e applicarla per me stesso
dt = Open( "raw_data.csv", "invisible" );
dt << Select Where(
:monitor_set_name == "CSP_FAST_TC" & :spc_chart_subset == "STDDEV" & :measurement_set_name == "U1_X"
);
df = dt << Subset( Selected Rows( 1 ), Selected columns only( 0 ), "invisible" );
df << Graph Builder(
Size( 1056, 675 ),
Show Control Panel( 0 ),
Automatic Recalc( 0 ),
Variables(
X( :spc_txn_date ),
Y( :chart_value ),
Y( :lo_control_lmt, Position( 1 ) ),
Y( :up_control_lmt, Position( 1 ) ),
Y( :centerline, Position( 1 ) ),
Group Y( :monitor_set_name ),
Group Y( :measurement_set_name ),
Group Y( :spc_chart_subset ),
Wrap( :spc_entity )
),
Elements(
Line( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Legend( 25 ), Connection( "Curve" ), Smoothness( 0.5 ) )
),
SendToReport(
Dispatch( {}, "spc_txn_date", ScaleBox, {Label Row( Automatic Font Size( 0 ) )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
25,
Properties( 2, {Line Color( 19 )} ),
Properties( 3, {Line Color( 0 ), Line Style( "Dotted" )} )
)}
)
)
);
df << save picture( "C:\Users\lamquocb\image.jpg" );
Tuttavia, ho riscontrato un altro problema per cui non sono riuscito a salvare l'immagine: il generatore di grafici per df.
Provo ad accedere alla posizione in cui voglio memorizzare l'immagine, ma non sono riuscita a trovarne una.
Hai qualche consiglio?
Cordiali saluti,
Re: Come eseguire i comandi JSL dopo che le condizioni sono soddisfatte?La tua variabile "df" punta alla tabella dei dati sottoinsiemi.Quando crei un rapporto da una tabella di dati, non diventa parte della tabella di dati.È un'entità su se stessa.Pertanto, il modo più semplice per accedere al report creato è specificare una variabile a cui puntare.L'ho fatto nella seguente modifica del tuo script.
gb = df << Graph Builder(
La variabile "gb" punta all'oggetto Graph Builder.Più avanti nel codice, il messaggio Save Picture viene applicato al report generato dalla piattaforma Graph Builder
report(gb) << save picture( "C:\Users\lamquocb\image.jpg" );
Ecco lo script modificato
names default to here( 1 );
dt = Open( "raw_data.csv", "invisible" );
dt << Select Where(
:monitor_set_name == "CSP_FAST_TC" & :spc_chart_subset == "STDDEV" & :measurement_set_name == "U1_X"
);
df = dt << Subset( Selected Rows( 1 ), Selected columns only( 0 ), "invisible" );
gb = df << Graph Builder(
Size( 1056, 675 ),
Show Control Panel( 0 ),
Automatic Recalc( 0 ),
Variables(
X( :spc_txn_date ),
Y( :chart_value ),
Y( :lo_control_lmt, Position( 1 ) ),
Y( :up_control_lmt, Position( 1 ) ),
Y( :centerline, Position( 1 ) ),
Group Y( :monitor_set_name ),
Group Y( :measurement_set_name ),
Group Y( :spc_chart_subset ),
Wrap( :spc_entity )
),
Elements(
Line( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Legend( 25 ), Connection( "Curve" ), Smoothness( 0.5 ) )
),
SendToReport(
Dispatch( {}, "spc_txn_date", ScaleBox, {Label Row( Automatic Font Size( 0 ) )} ),
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(
25,
Properties( 2, {Line Color( 19 )} ),
Properties( 3, {Line Color( 0 ), Line Style( "Dotted" )} )
)}
)
)
);
report(gb) << save picture( "C:\Users\lamquocb\image.jpg" );
Consiglio vivamente di dedicare del tempo alla lettura della Guida allo scripting, disponibile nella libreria della documentazione di JMP, che si trova nel menu a discesa della Guida!