Ajouter des lignes verticales à l'histogrammeJ'ai construit un histogramme à l'aide du générateur de graphiques et j'aimerais adapter mon script pour ajouter des lignes verticales à une valeur de mon choix superposées sur l'histogramme.
Exploration et visualisation des donnéesRe : Ajouter des lignes verticales à l'histogrammeUne autre option peut être d'ajouter une limite de spécification de propriété de colonne et de la laisser apparaître dans l'histogramme de la plate-forme de distribution.
La valeur peut ensuite être également utilisée pour d'autres plateformes (capacité du processus...).

Re : Ajouter des lignes verticales à l'histogramme>>Une option consiste également à supprimer l'effet des préférences des utilisateurs, mais selon la plate-forme, cela peut prendre beaucoup d'efforts pour définir toutes les valeurs par défaut sur 1 ou 0.
Oui je suis d'accord. J'ai pensé faire quelque chose comme ça pour certains scripts, mais en réalité, le script particulier d'où provient cet exemple de code est conçu pour parcourir toutes les distributions dans la fenêtre de sortie et rendre les bacs d'histogramme plus petits pour lui donner un aspect plus « normal ». Juste un script générique à un bouton qui ne génère aucune sortie, modifiant simplement les axes.
Re : Ajouter des lignes verticales à l'histogrammeParfois, ceux-ci doivent être construits un peu au cas par cas. Habituellement, j'utilise XPath avec une combinaison de << enfant, << frère, << parent et ainsi de suite...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(:height),
Horizontal Layout(1),
Vertical(0),
Prob Axis(1),
Quantile Box Plot(1),
Normal Quantile Plot(1)
)
);
axisbox = (Report(dist) << XPath("//ScaleBox"))[1];
axisbox << Add Ref Line(55, "Dotted", red, "F mean", 2);
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(:height),
Horizontal Layout(1),
Vertical(0),
Quantile Box Plot(1),
Normal Quantile Plot(1)
)
);
axisbox = (Report(dist) << XPath("//ScaleBox"))[1];
axisbox << Add Ref Line(55, "Dotted", red, "F mean", 2);
dist = dt << Distribution(
Stack(1),
Continuous Distribution(
Column(:height),
Horizontal Layout(1),
Vertical(0),
Count Axis(1),
Prob Axis(1),
Density Axis(1),
Quantile Box Plot(1),
Normal Quantile Plot(1)
)
);
axisbox = (Report(dist) << XPath("//ScaleBox"))[1];
axisbox << Add Ref Line(55, "Dotted", red, "F mean", 2);
Une option consiste également à supprimer l'effet des préférences des utilisateurs, mais selon la plate-forme, cela peut demander beaucoup d'efforts pour définir toutes les valeurs par défaut sur 1 ou 0.
Re : Ajouter des lignes verticales à l'histogrammeC'est tangentiellement lié mais je vais le mettre ici quand même.Cela est spécifiquement lié à la plate-forme de distribution (pas au générateur de graphiques qui figurait dans la question d'origine), mais peut s'appliquer à d'autres plates-formes en fonction des préférences de l'utilisateur, je n'en suis pas sûr.Je ne m'attendrais pas à ce que ce soit un problème dans le générateur de graphiques, principalement parce que je ne pense pas que les préférences des utilisateurs entrent autant en jeu.
Dans la plateforme de distribution, si les axes de probabilité, de densité et d'affichage des comptes ne sont pas définis pour être affichés, alors l'index de la boîte d'axe des données de la distribution est 1, ce qui signifie que vous pouvez le référencer avec report(xxxx)[ AxisBox(1)], similaire au message de Jarmo ci-dessus.Mais si vous ajoutez l'un des autres axes, l'index devient 2, 3 ou 4 (le maximum du total des axes affichés. Si vous avez toujours les mêmes paramètres, vous pouvez le coder en dur et ça devrait aller. Mais si le script est déployé à grande échelle, vous devez tenir compte des autres paramètres de préférences utilisateur. J'ai essayé de faire un « obtenir des éléments » mais je pense qu'il en retournait toujours 4 même si certains étaient vides. J'aurais probablement pu trouver une solution de contournement, mais j'ai fini par utiliser XPath.Vous pouvez consulter le fichier XML ou consulter les propriétés d'un rapport de sortie pour voir ce qui pourrait fonctionner. Autrement dit, ne cherchez pas seulement une zone d'axe car il pourrait y en avoir 4, recherchez plutôt la zone d'axe dans une zone de bordure dans une boîte de dépôt, qui semble être unique à l'axe « principal ». J'espère que cela résistera à l'épreuve du temps, mais cela a fonctionné pour moi jusqu'à présent.
myrpt = current report();
//show( myrpt<<GET xml=""></GET>// use xpList[1] instead of referencing an axisbox index. <BR />// If there's multiple distributions in the report, loop through or be more specific when grabbing the xpath.
Re : Ajouter des lignes verticales à l'histogrammeVoici quelques options. La première consiste à laisser JMP le créer pour vous, puis à utiliser Insérez une expression dans une autre à l'aide d'Eval Insert, Eval Expr, Parse et Substitute et le deuxième est modifié à partir de l'exemple d'index de script trouvé en recherchant Ref Line
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
ref_line = 180;
// Option1
Eval(EvalExpr(gb1 = dt << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(:weight)),
Elements(Histogram(X, Legend(3))),
SendToReport(
Dispatch(
{},
"weight",
ScaleBox,
{Min(57), Max(205.037037037037), Inc(20), Minor Ticks(0),
Add Ref Line(Expr(ref_line), "Solid", "Black", "", 1)}
)
)
)));
// Option2
gb2 = dt << Graph Builder(
Size(529, 457),
Show Control Panel(0),
Variables(X(:weight)),
Elements(Histogram(X, Legend(3)))
);
axisbox = Report(gb2)[AxisBox(1)];
axisbox << Add Ref Line(ref_line, "Dotted", red, "F mean", 2);