Comment exécuter des commandes JSL une fois que les conditions sont rempliesChers utilisateurs de la communauté JMP,
Je suis nouveau chez JMP et j'ai rencontré un problème. J'espère que je pourrais obtenir de l'aide de votre part.
J'ai un tableau de données. Je voudrais exécuter un générateur de graphique pour les colonnes uniquement pour certaines valeurs spécifiques.
Par exemple, je voudrais sélectionner les cellules AB766 et RSDF appartenant aux colonnes "monitor_set_name" et "measurement_set_name" ; et d'autres colonnes et lignes correspondant à " AB766" et "RSDF"

Ensuite, je voudrais exécuter " Graph builder " pour le tableau qui contient les informations dont j'ai besoin.
Si "monitor_set_name" et "measurement_set_name" ne contiennent pas "AB766" et "RSDF", je passerai à l'exécution du "graph builder"
Pourriez-vous me donner des conseils?
Sincèrement,
Tableau de donnéesScriptRe: Comment exécuter des commandes JSL une fois que les conditions sont rempliesPour générer le JSL ci-dessous, j'ai simplement exécuté les étapes de manière interactive, puis j'ai récupéré le code du journal et l'ai collé dans une fenêtre de 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: Comment exécuter des commandes JSL une fois que les conditions sont rempliesSalut,
Si vous débutez avec JMP, n'oubliez pas de consulter le filtre de données local et le sélecteur de colonnes. Le filtre de données local vous aidera probablement ici... J'ai inclus un sélecteur de colonne dans mon exemple juste pour vous faire savoir ce qu'il peut faire.
Cliquez simplement sur les éléments du menu pour restreindre votre graphique aux données que vous souhaitez prendre en compte. Aucun codage n'est requis et il est facile à utiliser... tout le monde peut les utiliser.
Pour obtenir le filtre de données local, dans le menu triangle rouge de Graph Builder, sélectionnez Ajouter un filtre de données local.
Pour obtenir le sélecteur de colonne, sélectionnez Rétablir > Sélecteur de colonne dans le menu principal. Vous devrez également sélectionner la colonne que vous souhaitez échanger et les colonnes parmi lesquelles vous souhaitez effectuer une rotation. Assurez-vous d'inclure la colonne que vous souhaitez échanger dans cet ensemble. Toutes les colonnes doivent être du même type de données.
Exécutez le script ci-dessous pour avoir un aperçu de ceux-ci en action.
Acclamations,
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: Comment exécuter des commandes JSL une fois que les conditions sont rempliesCher txnelson,
Ça marche. Appréciez beaucoup.
J'essaie de suivre vos conseils et de les appliquer pour moi-même
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" );
Cependant, je rencontre un autre problème pour lequel je n'ai pas pu enregistrer l'image - le générateur de graphiques pour df.
J'essaie d'accéder à l'emplacement où je veux stocker l'image, mais je n'en ai pas trouvé.
Avez-vous des conseils?
Sincèrement,
Re: Comment exécuter des commandes JSL une fois que les conditions sont rempliesVotre variable "df" pointe vers la table de données sous-ensemble.Lorsque vous créez un rapport à partir d'une table de données, il ne fait pas partie de la table de données.C'est une entité sur elle-même.Par conséquent, le moyen le plus simple d'accéder au rapport créé est de spécifier une variable vers laquelle pointer.Je l'ai fait dans la modification ci-dessous de votre script.
gb = df << Graph Builder(
La variable "gb" pointe vers l'objet Graph Builder.Plus loin dans le code, le message Enregistrer l'image est appliqué au rapport généré par la plateforme Graph Builder
report(gb) << save picture( "C:\Users\lamquocb\image.jpg" );
Voici le script modifié
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" );
Je vous recommande fortement de prendre le temps de lire le Scripting Guide, disponible dans la bibliothèque de documentation JMP, disponible dans le menu déroulant Aide !