Fügen Sie Referenzlinien - die Bereiche zulassen, nach Spaltenvariablen - auf separaten Seiten im Graph Builder hinzuIch habe mehrere Spalten mit numerischen Daten sowie eine numerische kontinuierliche Datums-/Uhrzeitspalte, die auf die nächste Sekunde genau ist. Ich kann einige oder alle davon nach Datum/Uhrzeit in einer Zeitreihe darstellen, um sie gleichzeitig anzuzeigen. Es gibt eine „Gruppen“-Zeichen-Nominalspalte, die ich im Graph Builder verwenden kann, um die Analyse nach Seiten zu trennen.
Es gibt eine weitere numerisch-kontinuierliche Datumsspalte „Ereignisdatum“, die auf den nächsten Tag gerundet ist (aus einer anderen Tabelle verknüpft), die mit jedem „Gruppen“-Wert abgeglichen wird. Es würde einen eindeutigen Ereignisdatumswert für eine bestimmte „Gruppen“-Variable geben. Ich möchte das Hinzufügen von Referenzlinien aus der Spalte „Ereignisdatum“ zur X-Achse automatisieren oder per Skript erstellen, jedoch mit „Bereiche zulassen“, wobei der Mindestwert als Ereignisdatum um 00:00:00 Uhr und der Höchstwert als Ereignisdatum um 23:59:59 Uhr basierend auf der Spaltenvariable „Gruppe“ festgelegt werden, wobei jede „Gruppe“ auf einer separaten Seite erscheinen soll. Unten sehen Sie ein Beispiel dafür, wie es auf einer Seite aussehen würde, zusammen mit dem typischen Dialogfeld „Referenzlinie“ in den Achseneinstellungen im Graph Builder als Referenz:


Grundlegende Datenanalyse und ModellierungDatenexploration und -visualisierungBetreff: Referenzlinien hinzufügen – Bereiche zulassen, nach Spaltenvariable – auf separaten Seiten im Graph BuilderWenn Sie sich für die Einrichtung des Graph Builders für einen Dialog entscheiden

Sie können eine By()-Spalte verwenden, anstatt sie als Seitenspalte anzugeben. Wenn Sie dies tun, kann jede angezeigte Graph Builder-Anzeigeausgabe separate Bereichsreferenzlinien haben

names default to here(1);
dt=
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{100, 120},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{140, 160},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
);Betreff: Referenzlinien hinzufügen – Bereiche zulassen, nach Spaltenvariable – auf separaten Seiten im Graph BuilderDanke, @txnelson .
Das kann funktionieren, aber ich frage mich, ob ich, anstatt die Position der Referenzlinien jeder Gruppe manuell anzugeben, die Spalte „Ereignisdatum“ aufrufen könnte, um die Positionen der Referenzlinien irgendwie festzulegen. Ist das machbar?Betreff: Referenzlinien hinzufügen – Bereiche zulassen, nach Spaltenvariable – auf separaten Seiten im Graph BuilderKönnten Sie ein Beispiel Ihrer Daten weitergeben bzw. ein Datenmodell erstellen? Im Graph Builder gibt es möglicherweise ein paar etwas schwierigere Methoden, um dies zu erreichen, ohne auf Skripte angewiesen zu sein.
Betreff: Referenzlinien hinzufügen – Bereiche zulassen, nach Spaltenvariable – auf separaten Seiten im Graph BuilderNatürlich können die Referenzbereiche auf der Grundlage von Werten in anderen Spalten oder von Ergebnissen aus JMP-Plattformen festgelegt werden. Ich habe nur eine Möglichkeit veranschaulicht, die verschiedenen Ebenen Ihrer Seitenspalte referenzierbar zu machen, indem Sie zur Verwendung von By() wechseln. Unten finden Sie eine einfache Erweiterung des Beispiels, das ich zuvor bereitgestellt habe. Es legt den Referenzlinienbereich basierend auf dem Mittelwert und dem Standardwert der X-Achsenspalte für jedes der Diagramme fest.

Names Default To Here( 1 );
dt =
// Open Data Table: Big Class.jmp
// → Data Table( "Big Class" )
Open( "$SAMPLE_DATA/Big Class.jmp" );
// This example sets the range of the reference lines based upon the mean +- 1 std
// of the weight column for each level of the sex column
Summarize( dt, sexGroup = by( :sex ), means = Mean( :weight ), stds = Std Dev( :weight ) );
Eval(
Eval Expr(
Graph Builder(
SendToByGroup( {:sex == "F"} ),
Variables( X( :weight ), Y( :height ) ),
Elements( Points( X, Y, Legend( 1 ) ), Smoother( X, Y, Legend( 2 ) ) ),
By( :sex ),
SendToByGroup(
{:sex == "F"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[1] - stds[1] ), Expr( means[1] + stds[1] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
),
SendToByGroup(
{:sex == "M"},
SendToReport(
Dispatch( {}, "weight", ScaleBox,
{Add Ref Line(
{Expr( means[2] - stds[2] ), Expr( means[2] + stds[2] )},
"Solid",
"Medium Light Red",
"",
1,
0.25
)}
)
)
)
)
)
);
Mit der Skriptsprache von JMP (JSL) können Sie praktisch alles tun, was Sie sich vorstellen können. Ich schlage vor, dass Sie sich die Zeit nehmen, den Skriptleitfaden zu lesen, der Ihnen das Wissen vermittelt, wie Sie mit JSL das erreichen können, was Sie möchten.