Vertikale Linien zum Histogramm hinzufügenIch habe mit dem Graph Builder ein Histogramm erstellt und möchte mein Skript anpassen, um vertikale Linien mit einem Wert meiner Wahl hinzuzufügen, die dem Histogramm überlagert sind.
SkripterstellungBetreff: Vertikale Linien zum Histogramm hinzufügenEine andere Option könnte sein, ein Spalteneigenschaftsspezifikationslimit hinzuzufügen und es im Histogramm der Verteilungsplattform anzeigen zu lassen.
Der Wert kann dann auch für andere Plattformen verwendet werden (Prozessfähigkeit ...).

Betreff: Vertikale Linien zum Histogramm hinzufügen>>Eine Möglichkeit besteht auch darin, den Effekt der Benutzereinstellungen zu entfernen, aber je nach Plattform kann es sehr aufwendig sein, alle Standardwerte auf 1 oder 0 zu setzen.
Ja, ich stimme zu. Ich dachte daran, so etwas für einige Skripte zu tun, aber eigentlich ist das spezielle Skript, aus dem dieser Beispielcode stammt, so konzipiert, dass es alle Verteilungen im Ausgabefenster durchläuft und die Histogramm-Bins kleiner macht, damit es "normaler" aussieht. Nur ein generisches Ein-Knopf-Skript, das keine Ausgabe erstellt, sondern nur die Achsen ändert.
Betreff: Vertikale Linien zum Histogramm hinzufügenManchmal müssen diese von Fall zu Fall etwas gebaut werden. Normalerweise verwende ich XPath mit einer Kombination aus << Kind, << Geschwister, << Eltern und so weiter ...
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);
Eine Möglichkeit besteht auch darin, den Effekt der Benutzereinstellungen zu entfernen, aber je nach Plattform kann es viel Aufwand erfordern, alle Standardwerte auf 1 oder 0 zu setzen.
Betreff: Vertikale Linien zum Histogramm hinzufügenDies ist tangential verwandt, aber ich werde es trotzdem hier einfügen.Es bezieht sich speziell auf die Distributionsplattform (nicht auf den Graph Builder, der in der ursprünglichen Frage enthalten war), kann aber je nach Benutzereinstellungen für andere Plattformen gelten, da bin ich mir nicht sicher.Ich würde nicht erwarten, dass dies ein Problem im Graph Builder ist, hauptsächlich weil ich nicht glaube, dass Benutzereinstellungen so viel ins Spiel kommen.
Wenn Sie in der Verteilungsplattform die Achsen für Wahrscheinlichkeit, Dichte und Anzahl anzeigen nicht zur Anzeige eingestellt haben, dann ist der Index für das Achsenfeld der Daten der Verteilung 1, was bedeutet, dass Sie mit report(xxxx)[ darauf verweisen können. AxisBox(1)], ähnlich wie Jarmos Beitrag oben.Aber wenn Sie eine der anderen Achsen hinzufügen, wird der Index 2, 3 oder 4 (das Maximum der insgesamt angezeigten Achsen). Wenn Sie immer die gleichen Einstellungen haben, können Sie es fest codieren und es sollte in Ordnung sein. Wenn das Skript jedoch weit verbreitet ist, müssen Sie andere Benutzereinstellungen berücksichtigen. Ich habe versucht, 'Elemente abrufen' zu machen, aber ich glaube, es hat immer 4 zurückgegeben, obwohl einige leer waren. Ich hätte dort wahrscheinlich eine Problemumgehung finden können, aber am Ende habe ich xpath verwendet.Sie können sich die XML-Datei oder die Eigenschaften eines Ausgabeberichts ansehen, um zu sehen, was funktionieren könnte. Das heißt, suchen Sie nicht nur nach einem Achsenfeld, da es 4 davon geben könnte, sondern suchen Sie nach dem Achsenfeld in einem Randfeld in einem Drop-Feld, das für die "Hauptachse" eindeutig zu sein scheint. Hoffentlich besteht das den Test der Zeit, aber es hat bisher für mich funktioniert.
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.
Betreff: Vertikale Linien zum Histogramm hinzufügenHier sind einige Optionen. Erstens lässt man es zuerst von JMP skripten und verwendet es dann Fügen Sie mit Eval Insert, Eval Expr, Parse und Substitute einen Ausdruck in einen anderen ein und der zweite wurde aus dem Scripting Index-Beispiel modifiziert, das durch die Suche nach Ref Line gefunden wurde
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);