Wie können JSL-Befehle ausgeführt werden, nachdem die Bedingungen erfüllt sind?Liebe JMP-Community-Benutzer,
Ich bin neu bei JMP und habe ein Problem gehabt. Hoffentlich konnte ich von euch Hilfe bekommen.
Ich habe eine Datentabelle. Ich möchte einen Graph-Builder für Spalten nur für einige bestimmte Werte ausführen.
Zum Beispiel möchte ich Zellen auswählen, die zu AB766 und RSDF gehören und zu den Spalten "monitor_set_name" und "measurement_set_name" gehören; und andere Spalten und Zeilen, die "AB766" und "RSDF" entsprechen

Dann möchte ich " Graph builder " für die Tabelle ausführen, die die benötigten Informationen enthält.
Wenn "monitor_set_name" und "measurement_set_name" nicht "AB766" und "RSDF" enthalten, werde ich den "Graph Builder" überspringen.
Könntest du mir ein paar Ratschläge geben?
Mit freundlichen Grüßen,
DatentabelleSkriptingBetreff: Wie kann man JSL-Befehle ausführen, nachdem die Bedingungen erfüllt sind?Um die JSL unten zu generieren, habe ich einfach die Schritte interaktiv ausgeführt, dann den Code aus dem Protokoll geholt und in ein Skriptfenster eingefügt.
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 ) ) )
);
Betreff: Wie kann man JSL-Befehle ausführen, nachdem die Bedingungen erfüllt sind?Hallo,
Wenn Sie neu bei JMP sind, sollten Sie sich unbedingt den lokalen Datenfilter und den Spaltenumschalter ansehen. Der lokale Datenfilter wird Ihnen hier wahrscheinlich weiterhelfen... Ich habe einen Spaltenumschalter in mein Beispiel eingefügt, nur um Sie wissen zu lassen, was er tun kann.
Klicken Sie einfach auf die Menüpunkte, um Ihre Grafik auf die Daten zu beschränken, die Sie berücksichtigen möchten. Es ist keine Codierung erforderlich und es ist einfach zu bedienen ... jeder kann diese verwenden.
Um den lokalen Datenfilter zu erhalten, wählen Sie im Menü des roten Dreiecks von Graph Builder die Option Lokalen Datenfilter hinzufügen.
Um den Column Switcher zu erhalten, wählen Sie Redo > Column Switcher aus dem Hauptmenü. Sie müssen auch die Spalte auswählen, die Sie austauschen möchten, und die Spalten, zwischen denen Sie rotieren möchten. Achten Sie darauf, die Spalte, die Sie austauschen möchten, in dieses Set aufzunehmen. Alle Spalten müssen vom gleichen Datentyp sein.
Führen Sie das folgende Skript aus, um einen Einblick in diese in Aktion zu erhalten.
Prost,
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}
)
);
Betreff: Wie kann man JSL-Befehle ausführen, nachdem die Bedingungen erfüllt sind?Lieber txnelson,
Es klappt. Schätze viel.
Ich versuche, deiner Anleitung zu folgen und sie für mich anzuwenden
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" );
Ich stoße jedoch auf ein anderes Problem, bei dem ich das Bild nicht speichern konnte - Graph Builder für df.
Ich versuche, auf den Ort zuzugreifen, an dem ich das Bild speichern möchte, konnte aber keinen finden.
Hast du irgendeinen Ratschlag?
Mit freundlichen Grüßen,
Betreff: Wie kann man JSL-Befehle ausführen, nachdem die Bedingungen erfüllt sind?Ihre Variable "df" zeigt auf die untergeordnete Datentabelle.Wenn Sie einen Bericht aus einer Datentabelle erstellen, wird er nicht Teil der Datentabelle.Es ist eine Einheit für sich.Daher ist der einfachste Weg, auf den erstellten Bericht zuzugreifen, die Angabe einer Variablen, die darauf verweist.Ich habe dies in der folgenden Modifikation Ihres Skripts getan.
gb = df << Graph Builder(
Die Variable "gb" zeigt auf das Graph Builder-Objekt.Später im Code wird die Nachricht „Bild speichern“ auf den von der Graph Builder-Plattform generierten Bericht angewendet
report(gb) << save picture( "C:\Users\lamquocb\image.jpg" );
Hier ist das modifizierte Skript
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" );
Ich empfehle Ihnen dringend, sich die Zeit zu nehmen, das Skripting-Handbuch zu lesen, das in der JMP-Dokumentationsbibliothek verfügbar ist und im Pulldown-Menü Hilfe zu finden ist!