Comment obtenir les valeurs de la zone de légende dans une table de données ?Dans l'exemple de tableau de données ci-joint, le script enregistré trace le graphique collé ci-dessous.
Je voudrais obtenir les valeurs de la boîte de légende dans un tableau de données avec les numéros TestStage dans la première colonne et les valeurs de la boîte de légende dans la deuxième colonne. Comment faire cela via JSL ?
Ce serait encore plus utile si je pouvais générer le tableau de données de manière dynamique, par exemple à partir d'un clic sur un bouton dans la fenêtre du générateur de graphiques une fois que j'ai sélectionné les semaines via le filtre de données local. Est-ce possible de le faire via JSL ?

Automatisation et scriptsles fenêtresRe : Comment obtenir les valeurs de la zone de légende dans une table de données ?Avez-vous envisagé d'utiliser Tabulate ?
Names Default To Here(1);
dt = Open("$DOWNLOADS/example_DataTable.jmp");
nw = New Window("",
Data Filter Context Box(
H List Box(
dt << Data Filter(Local,
Add Filter(
columns(:TestWk),
Modeling Type(:TestWk, Nominal),
Where(
:TestWk == {19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
),
Display(:TestWk, Find(Set Text("")))
)
),
gb = dt << Graph Builder(
Size(744, 332),
Show Control Panel(0),
Variables(X(:TestWk), Y(:Median), Group Y(:TestStage)),
Elements(
Points(X, Y, Legend(8)),
Caption Box(X, Y, Legend(10), Summary Statistic("N"))
),
SendToReport(Dispatch({}, "TestWk", ScaleBox, {Label Row(Show Major Grid(1))}))
),
tab = dt << Tabulate(Show Control Panel(0), Add Table(Row Table(Grouping Columns(:TestStage))))
)
)
);
Si cela ne suffit pas, vous pouvez ajouter un bouton pour transformer le tableau en tableau de données (et masquer le tableau si nécessaire).
Re : Comment obtenir les valeurs de la zone de légende dans une table de données ?@jthi Merci, j'ai reçu votre suggestion de travailler pour mon cas actuel. J'aimerais contrôler deux autres choses si cela est possible.
Comment changer le « N » (flèche bleue) sur la table en quelque chose comme « die testé » ?
Comment supprimer le texte sous le graphique et le tableau tabulé (encerclé en rouge ci-dessous) ?
Aussi, comment obtenir la somme de « N » ?

Re : Comment obtenir les valeurs de la zone de légende dans une table de données ?Je ne sais pas comment facilement cacher cela dans le tableau, car il semble le recréer en fonction de quelque chose (lorsque vous avez une instruction Where trop grande, il l'ajoute ou quelque chose de bizarre). Vous pouvez le faire avec le gestionnaire de changement de filtre, mais j'essaierais d'éviter cela autant que possible (je préfère garder ce texte Where plutôt que de commencer à jouer avec ceux-ci).
Names Default To Here(1);
dt = Open("$DOWNLOADS/example_DataTable.jmp");
nw = New Window("",
Data Filter Context Box(
H List Box(
dt << Data Filter(Local,
Add Filter(
columns(:TestWk),
Modeling Type(:TestWk, Nominal),
Where(
:TestWk == {19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
),
Display(:TestWk, Find(Set Text("")))
)
),
gb = dt << Graph Builder(
Size(744, 332),
Show Control Panel(0),
Variables(X(:TestWk), Y(:Median), Group Y(:TestStage)),
Elements(
Points(X, Y, Legend(8)),
Caption Box(X, Y, Legend(10), Summary Statistic("N"))
),
SendToReport(Dispatch({}, "TestWk", ScaleBox, {Label Row(Show Major Grid(1))}))
),
tab = dt << Tabulate(
Change Item Label(Statistics(N, "Die tested")),
Show Control Panel(0),
Add Table(Column Table(Statistics(N)), Row Table(Grouping Columns(:TestStage)))
)
)
)
);
wait(0);
(nw << XPath("//TextBox[contains(text(), 'Where(')]")) << Visibility("Collapse");
Re : Comment obtenir les valeurs de la zone de légende dans une table de données ?@jthi Merci, les instructions Where dans JMP ne me dérangent pas, mais lors de la copie du graphique sur d'autres applications Windows, j'aurais préféré ne pas les avoir.
Est-il possible d'afficher la somme des « N » (c'est-à-dire le total des tests) sous le tableau ?
Re : Comment obtenir les valeurs de la zone de légende dans une table de données ?Vous pouvez ajouter une zone de liste V supplémentaire pour envelopper le générateur de graphiques et tabuler

Voir plus...
Names Default To Here(1);
dt = Open("$DOWNLOADS/example_DataTable.jmp");
nw = New Window("",
Data Filter Context Box(
H List Box(
dt << Data Filter(Local,
Add Filter(
columns(:TestWk),
Modeling Type(:TestWk, Nominal),
Where(
:TestWk == {19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
),
Display(:TestWk, Find(Set Text("")))
)
),
V List Box(
gb = dt << Graph Builder(
Size(744, 332),
Show Control Panel(0),
Variables(X(:TestWk), Y(:Median), Group Y(:TestStage)),
Elements(
Points(X, Y, Legend(8)),
Caption Box(X, Y, Legend(10), Summary Statistic("N"))
),
SendToReport(Dispatch({}, "TestWk", ScaleBox, {Label Row(Show Major Grid(1))}))
),
)
)
)
);
Re : Comment obtenir les valeurs de la zone de légende dans une table de données ?@jthi Merci, mais n'obtenez pas la zone V List dans mon JMP 16 en utilisant votre script.
De plus, ce que je veux dire par somme, c'est une valeur de 14 (2+2+3+3+2+2) affichée sur le graphique, dans ce cas.
Re : Comment obtenir les valeurs de la zone de légende dans une table de données ?Vous pouvez utiliser un tableau séparé pour cela

Voir plus...
Names Default To Here(1);
dt = Open("$DOWNLOADS/example_DataTable.jmp");
nw = New Window("",
Data Filter Context Box(
H List Box(
dt << Data Filter(Local,
Add Filter(
columns(:TestWk),
Modeling Type(:TestWk, Nominal),
Where(
:TestWk == {19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}
),
Display(:TestWk, Find(Set Text("")))
)
),
V List Box(
gb = dt << Graph Builder(
Size(744, 332),
Show Control Panel(0),
Variables(X(:TestWk), Y(:Median), Group Y(:TestStage)),
Elements(
Points(X, Y, Legend(8)),
Caption Box(X, Y, Legend(10), Summary Statistic("N"))
),
SendToReport(Dispatch({}, "TestWk", ScaleBox, {Label Row(Show Major Grid(1))}))
),
tab2 = dt << Tabulate(Show Control Panel(0), Add Table(Column Table(Statistics(N))))
),
tab = dt << Tabulate(
Change Item Label(Statistics(N, "Die tested")),
Show Control Panel(0),
Add Table(Column Table(Statistics(N)), Row Table(Grouping Columns(:TestStage)))
)
)
)
);
wait(0);
(nw << XPath("//TextBox[contains(text(), 'Where(')]")) << Visibility("Collapse");