Betreff: Vermeiden Sie Wiederholungen im Skript, insbesondere im Graph BuilderIn der Lage zu sein, eigene Funktionen zu schreiben, kann für Sie nützlich sein. Sehen Sie dies aus @Craige_Hales im JSL-Kochbuch:
https://community.jmp.com/t5/JSL-Cookbook/Write-Your-Own-Functions/ta-p/49052
Betreff: Vermeiden Sie Wiederholungen im Skript, insbesondere im Graph BuilderDies ist ein Ansatz, der helfen könnte:
Fügen Sie gemeinsamen Code in separate Zeichenfolgen ein. Wenn es viele doppelte Anführungszeichen gibt, verwenden Sie die Konstrukte \ [und] \ zur besseren Lesbarkeit.
Setze den Graph Builder Code (A || B || C etc.) zusammen und führe ihn mit eval (parse ()) aus.
Hier ist ein einfaches Beispiel mit einer gemeinsamen Zeichenfolge für zwei Diagramme.
dt = open("$sample_data\Airline Delays.jmp");
common_str =
"dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Elapsed Time ), Y( :Distance ), Overlay( :Airline ) ),";
gb1_str = evalinsert(
"gb1 = ^common_str^
Elements( Area( X, Y, Legend( 21 ) ) )
)");
gb2_str = evalinsert(
"gb2 = ^common_str^
Elements( Points( X, Y, Legend( 11 ) ) )
)");
eval(parse(gb1_str));
eval(parse(gb2_str));
Betreff: Vermeiden Sie Wiederholungen im Skript, insbesondere im Graph BuilderDanke! Das ist ein sehr gutes Beispiel und Lösung!Betreff: Vermeiden Sie Wiederholungen im Skript, insbesondere im Graph BuilderDanke!
Vermeiden Sie Wiederholungen im Skript, insbesondere im Graph BuilderHallo,
Ich habe ein Skript, um Graph Builder-Diagramme zu reproduzieren. Drei Skriptdateien, von denen jede die Graph Builder-Ausgaben für 15 verschiedene Variablen reproduzieren sollte. Grundsätzlich verwendete ich den Graph Builder, um die Daten so zu zeichnen, wie ich es wollte, speicherte das Skript dahinter und wiederholte es für die nächsten 14 Variablen. Als Ergebnis habe ich so etwas:
// die erste Skriptdatei dt = currentdatatable (); obj1 = dt << GraphBuilder (); obj2 = dt << GraphBuilder (); ... obj15 = dt << GraphBuilder (); // Sorge: Wiederholung großer Teile im Code jedes ObjektsIch möchte die Einstellungen für die Graph Bulder-Funktionen für alle Objekte (insgesamt 15) beibehalten, aber Wiederholungen im Code vermeiden (einige Beispiele unten). Gibt es eine Möglichkeit, solche Teile des Codes zu Beginn des Skripts (oder in einer separaten Datei, da andere Skriptdateien dieselben Teile des Codes verwenden) zu definieren und beim Ausführen des Codes aufzurufen und diese zu verwenden? wie die Variablen innerhalb des Codes, um den Code einfacher, kürzer aussehen zu lassen? Dieser Weg ist auch dann effizient, wenn ich Änderungen vornehmen möchte. Die andere Frage: Irgendwelche Vorschläge, wie ich meine Skriptfähigkeiten verbessern könnte?
Vielen Dank.
Beispiele:
Versand ({}, "400", LegendBox, {Set Title (""), Schriftart ("Segoe UI", 11, "Plain"), Legendenposition ({8, [1, 5, 9, 3, 6, 11], 9, [0, 4, 8], 10, [2, 7, 10]}, Position ({1, 5, 9, 3, 6, 11, 0, 4, 8, 2, 7, 10})})oder
Versand ({}, "400", ScaleBox, {Legende Modell (8, Level Name (0, "Variable 3 Durchschnittswerte", Item ID ("3", 1)), Level Name (1, "Variable 5 Durchschnittswerte"), Item ID ("5", 1)), Level Name (2, "Variable 6 Averages", Item ID ("6", 1)), Level Name (3, "Variable 3 Standard Deviation", Item ID ("3 ", 2)), Ebenenname (4, Variable 5 Standardabweichung", Artikel-ID ("5", 2)), Ebenenname (5, Variable 6 Standardabweichung ", Artikel-ID (" 6 ", 2) ), Basis (0, 0, 0, Artikel-ID ("3", 1)), Basis (1, 0, 1, Artikel-ID ("5", 1)), Basis (2, 0, 2, Artikel-ID ("6", 1)), Basis (3, 0, 0, Artikel-ID ("3", 2)), Basis (4, 0, 0, Artikel-ID ("5", 2)), Basis (5 , 0, 0, Item ID ("6", 2)), Properties (0, {Linienfarbe (53), Linienbreite (4), Marker ("FilledCircle"), Markergröße (6), Farbverlauf ({Scale Werte ([0 1]), Breite (9), N Etiketten (6)})}, Artikel-ID ("3", 1)), Eigenschaften (1, {Linienfarbe (56), Linienbreite (4), Marker ("FilledCircle"), Markergröße (6), Farbverlauf ({Skalierungswerte ([0 1]), Breite (9), N Etiketten (6)})}, Artikel-ID (" 5 ", 1)), Eigenschaften (2, {Linienfarbe (38), Linienbreite (4), Marker (" FilledCircle "), Markergröße (6), Farbverlauf ({Skalenwerte ([0 1]), Breite (9), N Etiketten (6)})}, Artikel-ID ("6", 1)), Eigenschaften (3, {Linienfarbe (53), Linienbreite (4)}, Artikel-ID ("3", 2 )), Eigenschaften (4, {Linienfarbe (56), Linienbreite (4)}, Artikel-ID ("5", 2)), Eigenschaften (5, {Linienfarbe (38), Linienbreite (4)}, Objekt-ID ("6", 2)), Eigenschaften (-1, {Linienfarbe (13), Linienbreite (4), Markierung ("FilledCircle"), Markierungsgröße (6), Farbverlauf ({Skalierungswerte ([0 1]), Breite (9), N Etiketten (6)})}, Artikel-ID ("4", 1)), Eigenschaften (-1, {Linienfarbe (13), Linienbreite (4)}, Artikel-ID ("4", 2)), Base (-1, 0, 1, Item ID ("5", 1)), Level Name (-1, "Average", Item ID ("Mean", 1)), Basis (-1, 0, 0, Artikel-ID ("Standardabweichung", 1)), Eigenschaften (-1, {Linienfarbe (3), Markierung ("Gefüllter Kreis"), Markierungsgröße (6), Farbverlauf ({Skal Werte ([0 1]), Breite (9), N Bezeichnungen (6)})}, Artikel-ID ("Mittelwert", 1)), Eigenschaften (-1, {Linien-Co oder (1), Linienbreite (4)}, Artikel-ID ("Standardabweichung", 1)), Basis (-1, 0, 0, Artikel-ID ("95% Konfidenzintervall", 1)), Eigenschaften (- 1, {Linienfarbe (32), Linienbreite (2), Farbverlauf ({Skalierungswerte ([0 1]), Breite (9), N Etiketten (6)})}, Artikel-ID ("95% Konfidenzintervall") , 1))), Legendenmodell (9, Ebenenname (0, "Variable 3 Einzelwerte", Artikel-ID ("3", 1)), Ebenenname (1, "Variable 5 Einzelwerte", Artikel-ID (" 5 ", 1)), Ebenenname (2," Variable 6 Einzelwerte ", Artikel-ID (" 6 ", 1)), Basis (0, 0, 0, Artikel-ID (" 3 ", 1)), Basis (1, 0, 1, Artikel-ID ("5", 1)), Basis (2, 0, 2, Artikel-ID ("6", 1)), Eigenschaften (0, {Linienfarbe (37), Linienbreite (4)}, Artikel-ID ("3", 1)), Eigenschaften (1, {Linienfarbe (40), Linienbreite (4)}, Artikel-ID ("5", 1)), Eigenschaften (2, { Linienfarbe (38), Linienbreite (4)}, Objekt-ID ("6", 1)), Ebenenname (-1, "Variable 4 Einzelwerte", Objekt-ID ("4", 1)), Basis ( -1, 0, 0, Artikel-ID ("4", 1)), Eigenschaften (-1, {Linienfarbe (42), Linienbreite (4)}, Artikel I D ("4", 1)), Ebenenname (-1, "Einzelwerte", Artikel-ID ("Hauptvariable", 1)), Eigenschaften (-1, {Linienfarbe (5)}, Artikel-ID ( "Hauptvariable", 1)), Eigenschaften (-1, {Linienfarbe (5), Farbverlauf ({Skalierungswerte ([0 1]), Breite (9), N Beschriftungen (6)})}, Artikel-ID ("Hauptvariable", 1))), Legendenmodell (10, Ebenenname (0, "Variable 3 glatt", Objekt-ID ("3", 1)), Ebenenname (1, "Variable 5 glatt", Objekt-ID ("5", 1)), Ebenenname (2, "Variable 6 glatt", Objekt-ID ("6", 1)), Eigenschaften (0, {Linienfarbe (53), Linienbreite (4)} , Objekt-ID ("3", 1)), Eigenschaften (1, {Linienfarbe (56), Linienbreite (4)}, Objekt-ID ("5", 1)), Eigenschaften (2, {Linienfarbe (38) ), Linienbreite (4)}, Objekt-ID ("6", 1)), Ebenenname (-1, "Variable 4 glatt", Objekt-ID ("4", 1)), Eigenschaften (-1, {Linie Farbe (13), Linienbreite (4)}, Artikel-ID ("4", 1)), Eigenschaften (-1, {Linienbreite (4)}, Artikel-ID ("Glatt", 1))})