Ciao, sono nuovo del linguaggio di scripting jmp. Il codice seguente funziona (mostra i grafici a barre della colonna da 3 a n) ma c'è una cosa che vorrei fare. Come faccio a scrivere in modo tale che il mio output debba essere un grafico a barre in pila di tutte le colonne?
for(i=3,i<=NItems(colList2),i++,
gb= dt4 << Generatore di grafici(
Dimensioni(534.454),
Mostra pannello di controllo(0),
variabili(
X(:Etichetta),Y(eval(Colonna(dt4,colList2[i])))),
),
Elementi(Bar(X,Y))
));
Non esiste una singola istruzione che può essere espansa per coprire un numero diverso di colonne Y in entrata.Pertanto, è necessario prendere il modulo di base e crearlo dinamicamente a seconda del numero di colonne
Ecco il modulo base
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" )
)
)
);
Ecco lo script di esempio che ho creato che crea dinamicamente un grafico a barre in pila
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));
Che produce

Grazie per la risposta! Hai idea di come dovrei farlo affinché lo script esegua automaticamente lo script in diversi set di dati con nomi di colonne diversi senza dover utilizzare il generatore di grafici in modo interattivo?
@txnelson ha scritto:
In modo interattivo, vai a Generatore di grafici e sviluppa il grafico in modo che appaia come desideri, quindi vai semplicemente sul triangolo rosso e seleziona "Salva script". JMP crea il JSL per te.