Bonjour, je suis nouveau dans le langage de script jmp. Le code ci-dessous fonctionne (il montre des graphiques à barres de la colonne 3 à n) mais il y a une chose que je voudrais faire. Comment puis-je créer un script de telle sorte que ma sortie soit un graphique à barres empilées de toutes les colonnes ?
pour(i=3,i<=NItems(colList2),i++,
gb= dt4 << Générateur de graphiques (
Taille(534 454),
Afficher le panneau de configuration (0),
Variables(
X(:Étiquette),Y(eval(Colonne(dt4,colList2[i]))),
),
Éléments (Barre (X, Y))
));
Il n’existe pas une seule instruction qui puisse être développée pour couvrir un nombre différent de colonnes Y entrantes.Par conséquent, vous devez prendre le formulaire de base et le créer dynamiquement en fonction du nombre de colonnes.
Voici le formulaire de 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" )
)
)
);
Voici l'exemple de script que j'ai créé et qui construit dynamiquement un graphique à barres empilées
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));
Cela produit

Merci pour la réponse! Avez-vous une idée de la façon dont je devrais procéder pour que le script s'exécute automatiquement dans différents ensembles de données avec différents noms de colonnes sans avoir à utiliser le générateur de graphiques de manière interactive ?
@txnelson a écrit:
De manière interactive, accédez à Graph Builder et développez le graphique pour qu'il ressemble à ce que vous souhaitez, puis accédez simplement au triangle rouge et sélectionnez "Enregistrer le script". JMP crée le JSL pour vous.