Spaltenumschalter – Referenzlinien dynamisch hinzufügen/entfernenHallo,
Ich habe eine Verteilungsplattform, die einen Spaltenumschalter verwendet, der mit Spalten aus einer Listenvariablen gefüllt wird. Jede dieser Spalten stellt einen anderen Qualitätsparameter dar und weist daher unterschiedliche Grenzwerte auf, die aus einer SQL-Abfrage ermittelt werden.
Gibt es eine Möglichkeit, Referenzzeilen dynamisch zur Verteilungsplattform hinzuzufügen, wenn der Spaltenumschalter die Spalten ändert? Im Moment läuft für jedes Element ein SendToReport in einer Schleife, aber am Ende werden die Referenzzeilen für alle Spalten auf einmal hinzugefügt, und nicht nur die beiden, die für jede Spalte benötigt werden.
Eine einfache Möglichkeit, dies zu tun, wäre, wenn der Spaltenumschalter ein „Bei Spaltenänderung“-Skript unterstützen würde – ich könnte dann die vorherigen Ref-Zeilen entfernen und bei jeder Änderung die neuen hinzufügen. Ich konnte keine Informationen zum Skriptindex finden, ob so etwas unterstützt wird.
JMP-Version: 14
has_limits = {"item 1", "item 2", "item 3"};
dist = dt << Distribution(
Continuous Distribution( Column( "item 1" ), Horizontal Layout( 1 ), Always use column properties( 1 ), Vertical( 0 ), Outlier Box Plot( 0 ) ),
Column Switcher( "item 1", has_limits )
);
For( n = 1, n <= N Items( has_limits ), n++,
tempUCL = Col Max( Column( dt, has_limits[n] || "_UCL" ) );
tempLCL = Col Max( Column( dt, has_limits[n] || "_LCL" ) );
Eval(
Eval Expr(
dist << SendToReport(
Dispatch(
{Expr( has_limits[n] )},
"1",
ScaleBox,
{Add Ref Line( Expr( tempUCL ), "Dashed", "Medium Dark Red", "UCL", 1 ), Add Ref Line(
Expr( tempLCL ),
"Dashed",
"Medium Dark Red",
"LCL",
1
)}
)
)
)
);
); Automatisierung und SkripterstellungBetreff: Spaltenumschalter – Referenzlinien dynamisch hinzufügen/entfernenEs sieht so aus, als ob der Spaltenschalter-Handler erst in JMP 16 hinzugefügt wurde.

Betreff: Spaltenumschalter – Referenzlinien dynamisch hinzufügen/entfernenHier ist ein Skript, das Sie teilweise dorthin bringt.Aus irgendeinem Grund werden die Achsenwerte entfernt, aber wenn Sie es an Ihren Daten ausprobieren, können Sie vielleicht herausfinden, wie es richtig funktioniert.Der Code wurde mit JMP 14 entwickelt
names default to here(1);
dt = open("$SAMPLE_DATA/blood pressure.jmp");
has_limits = {"bp 8m", "bp 12m", "bp 6m"};
for(i=1,i<=nitems(has_limits),i++,
new column(has_limits[i] || "_UCL", values(matrix(quantile(.75,column(has_limits[i])<<GET values=""></GET>Betreff: Spaltenumschalter – Referenzlinien dynamisch hinzufügen/entfernenDanke dafür. Ich habe die fehlenden Achsenwerte noch nicht herausgefunden, es ist sehr seltsam (zeigt auch einen „Lade“-Cursor), aber es ist zumindest ein Schritt in die richtige Richtung.
Betreff: Spaltenumschalter – Referenzlinien dynamisch hinzufügen/entfernenEine Lösung könnte darin bestehen, Ihre JSL auszuführen, dann zum roten Dreieck im Berichtsausgabefenster zu gehen und „Skript speichern“ auszuwählen.Speichern Sie es in einem Skriptfenster und führen Sie dann das Skript aus.Meine Tests zeigen, dass der von JMP erstellte Code die fehlenden X-Azis-Labels aufweist.
Ich habe den Fehler an den JMP-Support gemeldet.
Betreff: Spaltenumschalter – Referenzlinien dynamisch hinzufügen/entfernenEine andere Problemumgehung, die zu funktionieren scheint, besteht darin, Polsterung hinzuzufügen (vielleicht wird etwas auf die Achsenbox geschoben?)

Oder aktivieren Sie Häkchen im Diagrammrahmen in den Achseneinstellungen. Allerdings sieht das Diagramm dadurch etwas seltsam aus, und ich denke, Sie möchten möglicherweise auch Gitterlinien aktivieren

