Hallo, ich bin neu in der JMP-Skriptsprache. Der folgende Code funktioniert (er zeigt Balkendiagramme der Spalten 3 bis n), aber es gibt eine Sache, die ich tun möchte. Wie erstelle ich ein Skript, sodass meine Ausgabe ein gestapeltes Balkendiagramm aller Spalten sein sollte?
for(i=3,i<=NItems(colList2),i++,
gb= dt4 << Graph Builder(
Größe(534.454),
Systemsteuerung anzeigen(0),
Variablen(
X(:Label),Y(eval(Column(dt4,colList2[i]))),
),
Elemente(Balken(X,Y))
));
Es gibt keine einzige Anweisung, die erweitert werden kann, um eine andere Anzahl eingehender Y-Spalten abzudecken.Daher müssen Sie das Grundformular nehmen und es abhängig von der Anzahl der Spalten dynamisch erstellen
Hier ist die Grundform
Graph Builder(
Size( 534, 450 ),
Show Control Panel( 0 ),
Variables(
X( :SITE ),
Y( :NPN1 ),
Y( :PNP1, Position( 1 ) ),
Y( :PNP2, Position( 1 ) ),
Y( :NPN2, Position( 1 ) ),
Y( :PNP3, Position( 1 ) )
),
Elements(
Bar(
X,
Y( 1 ),
Y( 2 ),
Y( 3 ),
Y( 4 ),
Y( 5 ),
Legend( 4 ),
Bar Style( "Stacked" )
)
)
);
Hier ist das von mir erstellte Beispielskript, das dynamisch ein gestapeltes Balkendiagramm erstellt
names default to here(1);
dt=open("$SAMPLE_DATA/Blood Pressure.jmp");
// Get all of the continuous data columns
colList = dt << get column names(continuous,string);
// Create the JSL to create the script
theExpr = "Graph Builder(
Size( 534, 450 ),
Show Control Panel( 0 ),
Variables(
X( :Dose ),";
// Add the first Y entry
theExpr = theExpr || "Y( :" || colList[1] || " )";
// Add the remaining Y entries
For( i=2, i<= n items(colList), i++,
theExpr = theExpr || ", Y( :" || colList[i] || ", Position( 1 ) )";
);
// Finish up the Variables list, and start the Elements
theExpr = theExpr || "), Elements( Bar(X, Y( 1 )";
// Add the remaining Y elements
For( i=2, i<= n items(colList), i++,
theExpr = theExpr || ", Y( " || char(i) || " )";
);
// Finish up the required specifications
theExpr = theExpr || ",
Legend( 4 ),
Bar Style( \!"Stacked\!" )
)
)
);";
// Run the created JSL
eval(parse(theExpr));
Das produziert

Danke für Ihre Antwort! Haben Sie eine Idee, wie ich es tun soll, damit das Skript das Skript automatisch in verschiedenen Datensätzen mit unterschiedlichen Spaltennamen ausführt, ohne den Graph Builder interaktiv verwenden zu müssen?
@txnelson schrieb:
Gehen Sie interaktiv zum Graph Builder und entwickeln Sie das Diagramm so, dass es so aussieht, wie Sie es möchten. Gehen Sie dann einfach zum roten Dreieck und wählen Sie „Skript speichern“. JMP erstellt die JSL für Sie.