Ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesJe veux ajouter des étiquettes de texte à un histogramme avec la moyenne et l'écart type. J'ai compris comment le faire via la fonction de personnalisation pour ajouter un script graphique. Je ne sais toujours pas comment définir la valeur y, car elle ne semble pas être connectée aux unités d'axe, mais je peux contourner ce problème. Mon problème est que les étiquettes ne sont pas mises à jour en réponse à un filtre de données local ou en masquant / excluant des lignes. La seule chose qui fonctionne est de supprimer des lignes. J'utilise col mean () & col std dev (); devrais-je utiliser autre chose?
NamesDefaultToHere(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :height ),
Summary Statistics( 1 ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Count Axis( 1 ),
Set Quantile Increment( 0.25 ),
Customize Summary Statistics(
Std Err Mean( 0 ),
Upper Mean Confidence Interval( 0 ),
Lower Mean Confidence Interval( 0 ),
N( 0 ),
Median( 0 )
)
),
Histograms Only,
Local Data Filter( Grouped by AND( 1 ), Add Filter( columns( :height ) ) ),
SendToReport(
Dispatch(
{"height"},
"Distrib Histogram",
FrameBox,
{Frame Size( 414, 428 ),
Add Graphics Script(
2,
Description( "Script" ),
Text(
Right Justified,
{72, 0.11},
"Mean: " || Format( Col Mean( :height ), "Fixed Dec", 12, 2 )
);
Text(
Right Justified,
{72, 0.105},
"StdDev: " || Format(
Col Std Dev( :height ),
"Fixed Dec",
12,
2
)
);
), Grid Line Order( 1 ), Reference Line Order( 3 )}
)
)
);Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesLe filtre de données local a une table privée et je ne sais pas comment y accéder. Cependant, vous pouvez corriger le calcul en:
- récupère les lignes filtrées à partir des données locales, ce sont les lignes qui restent après l'application de la restriction, elle ne prend pas en compte les exclus
- obtenir les lignes exclues de la table de données
- retirer les exclus du filtré
- puis calculer les statistiques
Ce problème avec l'histogramme est que le placement dans le frambox est à mon avis pénible. Peut-être que quelqu'un sur le forum peut expliquer comment définir le texte comme un décalage par rapport au coin supérieur gauche. Je l'écrirais probablement dans sa propre zone de texte, il ?? La capture d'écran ci-dessous montre que le texte correspond au tableau récapitulatif. Le script est attaché.
Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesJe vois maintenant que le filtre de données local va provoquer son échec. Je pourrais placer le filtre au niveau de la table comme solution de contournement afin qu'il cache / exclue, mais cela fonctionnera suffisamment pour répondre à mes besoins immédiats. Merci.
Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesMerci. Le code que j'ai utilisé pour l'exemple Graph Builder utilise le même texte (Center Justified, {_x_, _y_}, "_text_"); commande que j’ai utilisée pour l’exemple de la plate-forme de distribution, je ne vois donc pas très bien comment la syntaxe fonctionnerait.
Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesVoir mon post sur le Col Mean (). De plus, si vous utilisez une zone de texte (votre code n'est pas visible), vous pouvez utiliser un balisage pour souligner le texte. Ceci est l'exemple d'index de script JMP pour Display Box> TextBox> Markup
Names Default To Here( 1 );
win = New Window( "Example", fontobj = text = Text Box( "Example Text" ) );
text << setText(
"This is <B>bold</B> text. This is <I>italic</I> text. This is <U>underlined</U> text. This is <B><I><U>bold, italic, underlined</U></I></B> text."
);
text << markup;
Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / exclues**** Ignorer cette suggestion. Ceci est un filtre de données local, donc les lignes de la table ne sont pas excusées ***
Une alternative consiste à utiliser uniquement des lignes non exclues
Text(
Right Justified,
{72, 0.11},
"Mean: " || Format( Col Mean( If(Excluded(),empty(),1)*:height ), "Fixed Dec", 12, 2 )
);
Text(
Right Justified,
{72, 0.105},
"StdDev: " || Format(
Col Std Dev(If(Excluded(),empty(),1) *:height ),
"Fixed Dec",
12,
2
)
);
Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesJe ne vois pas de moyen de souligner le texte, sauf si vous avez ajouté une fonction line () sous le mot
Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesMerci. Connaissez-vous un moyen de souligner le texte? J'ai ajouté des en-têtes et, pour l'instant, j'ai agrandi et décalé le texte, mais il paraîtrait mieux souligné.
De plus, avez-vous une idée de la façon de faire fonctionner cela dans Graph Builder, puisqu'il ne dispose pas de statistiques récapitulatives?

Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesil apparaît que la position de l'axe des ordonnées est Y / 100
Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesDes conseils sur la façon de choisir la valeur _y_? la valeur _x_ semble liée à l'échelle de l'axe des x, mais pas le yy_.
Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesJ'ai inclus les statistiques récapitulatives dans mon exemple pour montrer ce que je m'attendais à faire, mais je n'avais pas prévu de l'utiliser dans mon application. Je suppose que je pourrais l'activer, mais le minimiser afin qu'il ne soit pas inclus lorsque je copie le graphique pour l'insérer dans une présentation. Cela semble être un kludge, et que ces fonctions se comportent de manière inattendue, mais le travail sera fait. Merci.
Re: ajout de script graphique non mis à jour lorsque les lignes sont masquées / excluesLe problème que vous rencontrez est que les fonctions Col Mean () et Col Std Dev () ne suivent pas les règles de données exclues. Il vous faut donc un moyen d'obtenir les valeurs que vous souhaitez. Voici une façon de le faire.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dis = dt << Distribution(
Stack( 1 ),
Automatic Recalc( 1 ),
Continuous Distribution(
Column( :height ),
Summary Statistics( 1 ),
Horizontal Layout( 1 ),
Vertical( 0 ),
Count Axis( 1 ),
Set Quantile Increment( 0.25 ),
Customize Summary Statistics(
Std Err Mean( 0 ),
Upper Mean Confidence Interval( 0 ),
Lower Mean Confidence Interval( 0 ),
N( 0 ),
Median( 0 )
)
),
Histograms Only,
Local Data Filter( Grouped by AND( 1 ), Add Filter( columns( :height ) ) ),
SendToReport(
Dispatch(
{"height"},
"Distrib Histogram",
FrameBox,
{Frame Size( 414, 428 ), Add Graphics Script(
2,
Description( "Script" ),
Text(
Right Justified,
{72, 0.11},
"Mean: " || Format(report(dis)[numbercolbox(1)][1]/* Col Mean( :height )*/, "Fixed Dec", 12, 2 )
);
Text(
Right Justified,
{72, 0.105},
"StdDev: " || Format(report(dis)[numbercolbox(1)][2]/* Col Std Dev( :height )*/, "Fixed Dec", 12, 2 )
);
), Grid Line Order( 1 ), Reference Line Order( 3 )}
)
)
);