J'aimerais obtenir un tracé de listbox similaire au script ci-dessous mais avec un format de données différent. Mes données ressemblent davantage au tableau suivant où toutes les données à tracer se trouvent dans les deux premières colonnes. Je veux que la partie liste dans la zone de liste soit le nombre de tests, et lorsque je clique sur un nombre de tests, cela produit un tracé à la fois avant et arrière. Il semble que cela soit possible avec un tracé bivarié utilisant l'entrée by... Bivarié (I1, V1, par type de balayage, par nombre de tests).
Est-ce possible et pourrais-je obtenir des conseils sur la façon de faire fonctionner cela. Je suis un débutant JMP et je ne sais pas vraiment par où commencer.
Mon format de données
| V1 | I1 | Nombre de tests | Type de balayage |
| 0 | 0 | 1 | Avant |
| 1 | .1 | 1 | Avant |
| 2 | .2 | 1 | Avant |
| 0 | 0 | 1 | Inverse |
| -1 | -.1 | 1 | Inverse |
| -2 | -.2 | 1 | Inverse |
| 0 | 0 | 2 | Avant |
| 1 | .1 | 2 | Avant |
| 2 | .2 | 2 | Avant |
Exemple de zone de liste à partir d'exemples de données
// Listbox_Graphs.jsl
// Display one graph at a time using a listbox to select which one
names default to here(1);
dt = open("$sample_data\CrimeData.jmp", invisible);
xcol = "Year";
ycols = {"Population", "Total Rate", "Violent Rate", "Property Rate", "Murder Rate",
"Rape Rate", "Robbery Rate", "Agg-Aslt Rate", "Burglary Rate", "Larceny Rate",
"MVTheft Rate", "Murder", "Rape", "Robbery", "Agg-Aslt", "Burglary", "Larceny",
"MVTheft", "Total", "Violent", "Property", "Latitude", "Longitude"};
gb_expr = {};
for(i = 1, i <= nitems(ycols), i++,
ycol = ycols[i];
// Define an array of graph builder expressions, one for each y column
one_expr = evalinsert(
"\[gb_expr[^i^] = expr(
dt << Graph Builder(
Show Control Panel( 0 ),
Variables( X( :Name( "^xcol^" ) ), Y( :Name( "^ycol^" ) ) ),
Elements( Points( X, Y, Legend( 5 ) ), Smoother( X, Y, Legend( 6 ) ) )
),
);
]\");
eval(parse(one_expr));
);
// Code to run when a different y variable is selected
y_list_expr = expr(
y_mtx = y_lb << get selected indices;
y_i = y_mtx[1];
hlb << delete;
vlb << append(
hlb = hlistbox(
eval(gb_expr[y_i])
)
);
);
gw = new window("Graphical Output",
hlistbox(
panel box(
xcol || " vs:",
y_lb = list box(ycols,
width(250),
nlines(20),
max selected(1),
y_list_expr,
)
),
panel box("Graph",
vlb = vlistbox(
hlb = hlistbox(
eval(gb_expr[1]),
)
)
)
)
);
y_lb << set selected(1);
Le définir comme une page différente a parfaitement fonctionné. Merci!
Vous pouvez également envisager d’utiliser la plateforme de sélection des réponses.Il génère un tableau de données récapitulatif qui présente les résultats de l'analyse par ordre de signification.La sélection d'un ou de plusieurs paramètres, puis l'exécution de l'un des scripts de table fournis produisent les nuages de points en utilisant Ajuster Y par X.Par conséquent, tous les tests analytiques disponibles dans Fit Y by X sont disponibles pour les paramètres sélectionnés.
Names Default To Here( 1 );
dt = Current Data Table();
Response Screening(
Y( :V1, :I1 ),
X( :Test Count, :Sweep Type ),
PValues Table on Launch( 1 )
);

Je ne sais pas ce que vous entendez par diviser l'axe. Vous pouvez éventuellement créer une nouvelle colonne avec un regroupement supplémentaire et l'utiliser comme autre filtre de données local ou par exemple comme page
Edit : J'ai posté le commentaire deux fois. Excuses.
Cela peut fonctionner. Existe-t-il un moyen de diviser l'axe ? Les données réelles ont une plage de tensions et de courants beaucoup plus large.
Fonctionnellement, c'est un bon début. Merci pour votre aide!
Peut-être que l'utilisation d'un filtre de données local serait suffisante ? Changez le type de modélisation Test Count en Ordinal ou Nominal et vous pouvez obtenir quelque chose comme ceci :

Script créé par JMP :
Graph Builder(
Size(536, 491),
Show Control Panel(0),
Variables(X(:V1), Y(:I1), Group X(:Test Count), Group X(:Sweep Type)),
Elements(Points(X, Y, Legend(46)), Smoother(X, Y, Legend(47))),
Local Data Filter(
Add Filter(
columns(:Test Count),
Where(:Test Count == 1),
Display(:Test Count, N Items(2), "List Display")
)
)
)
Modifier:
Script avec exemple de table de données
Voir plus...