Automatische Skalierung passend zur X- und Y-AchseGelöst: Betreff: Zugehörige Spalten automatisch darstellen - JMP User Community
Als Fortsetzung der obigen Diskussion möchte ich die Skalierung einiger Diagramme so automatisieren, dass sie auf beiden Achsen, der X- und der Y-Achse, symmetrisch zum Nullwert sind.
Das hätte ich gerne

automatisch so ausgegeben.

Der Code, der mich hierher geführt hat, ist im obigen Link enthalten.
Tschüss
SpannerHead
Automatisierung und SkriptingBetreff: Automatische Skalierung passend zur X- und Y-AchseEine Möglichkeit besteht darin, mithilfe einiger Matrizen nach „gültigen“ Zeilen zu suchen, nur aus diesen Werte abzurufen und dann das Maximum wie zuvor zu berechnen.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
Column(dt, "height") << Set Property("Missing Value Codes", {70, 69, 68});
Column(dt, "weight") << Set Property("Missing Value Codes", {172});
m1 = Column(dt, "height") << get values;
m2 = Column(dt, "weight") << get values;
valid_rows = Loc(V Sum(Is Missing(m1 || m2)`), 0);
val = Max(Abs(dt[valid_rows, "weight"] |/ dt[valid_rows, "height"]));Betreff: Automatische Skalierung passend zur X- und Y-AchseDanke, und Sie haben Recht mit dem, was Sie sagen. Ich glaube, ich stelle die Frage nicht richtig. Fehlende Werte in X werden bei der Ermittlung des Maximums von X ignoriert. Die Partner-Y-Werte in derselben Zeile fehlen nicht und werden daher nicht ignoriert. Ich sollte klarstellen, dass ich durch Spalten in einer Datentabelle iteriere und automatisch verbundene Metriken zeichne.
Dieses Skript kann einen Spannungsschwellenwert auswählen und ihn gegen den jeweiligen Stromwert auftragen, wenn dieser ausgewählt wird. Wenn dies am Ende neu skaliert wird, führt beispielsweise ein fehlender Wert in X dazu, dass im Diagramm kein Datenpunkt vorhanden ist. Der Partner-Y-Wert könnte jedoch weiterhin den Maßstab des Diagramms festlegen.
To ensure the plot contains the 100 value on both axed, I did modify the matrix to include 110 with |/110;
Tschüss
Spannerkopf
dt = Current Data Table();
dt << Clear Column Selection();
colList = dt << get column names( string );
check_list = {"VTX", "VTN", "VTP", "VTF", "IDS", "IBB", "ILK", "CMI"};
New Window( "Select Variables",
<<TYPE></TYPE>Betreff: Automatische Skalierung passend zur X- und Y-AchseDa Sie wissen, welche Spalten Sie verwenden, können Sie Col Min + Col Max verwenden, um die Mindest- und Höchstwerte zu erhalten (diese sollten fehlende Wertcodes berücksichtigen). Verwenden Sie dann eine Kombination Ihrer Werte, der Abs()-Funktion und der Max()-Funktion, um Ihren Wert für die X- und Y-Achse zu erhalten.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
show(Col Max(Column(dt, "height")));
Column(dt, "height") << Set Property("Missing Value Codes", {70, 69, 68});
show(Col Max(Column(dt, "height")));
aber ich denke auch, dass Bivariate diese Punkte überhaupt nicht darstellen sollte, wenn sie von Missing Value Codes ignoriert wurden
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val1 = Max(Max(Abs(xs)), Max(Abs(ys)));
biv << close window;
Column(dt, "weight") << Set Property("Missing Value Codes", {172});
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val2 = Max(Max(Abs(xs)), Max(Abs(ys)));
show(val1, val2);Betreff: Automatische Skalierung passend zur X- und Y-AchseIch habe viele numerische Fehlercodes, um den Datentyp für die Spalte beizubehalten. Ich muss diese in der Analyse ignorieren. Wenn jedoch entweder X oder Y mit einem fehlenden Wertcode gekennzeichnet sind und der Partner nicht, können die Skalen durch Daten festgelegt werden, die nicht tatsächlich im Diagramm dargestellt sind.

Danke für die tolle Hilfe.
Tschüss
SpannerHead
Betreff: Automatische Skalierung passend zur X- und Y-AchseWas bedeutet in diesem Fall „als fehlend markiert“?
Wenn Sie den anderen Wert beibehalten möchten, sollte dies meiner Meinung nach auch dann funktionieren, wenn in den Matrizen Werte fehlen.

Betreff: Automatische Skalierung passend zur X- und Y-AchseMir ist eine Kleinigkeit aufgefallen. In manchen Fällen fehlen in einer der ys- oder xs-Matrizen Werte, weil sie mit einem Code für fehlende Werte versehen wurde. Die Werte der Partnermatrix fehlen möglicherweise nicht und können zur Festlegung der Skalen einbezogen werden. Gibt es eine Möglichkeit, Werte aus ys zu eliminieren, wenn die Zeile für xs als fehlend markiert ist, wobei die gleiche Eliminierung von xs erfolgt, wenn ys ein fehlender Wert ist?
Tschüss
SpannerHead
Betreff: Automatische Skalierung passend zur X- und Y-AchseEpisch! Funktioniert wie am Schnürchen.
Betreff: Automatische Skalierung passend zur X- und Y-AchseEine Möglichkeit ist, Maximalwerte (von absoluten Werten) zu berechnen, das Negative davon zu nehmen und die Werte festzulegen. Sie können die Werte auch aus der Datentabelle mit Col Max() / Col Min() oder Summarize berechnen.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
biv = dt << Bivariate(Y(:height), X(:weight));
ms = Report(biv)[FrameBox(1)] << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
val = Max(Max(Abs(xs)), Max(Abs(ys)));
xaxis = Report(biv)[AxisBox(1)];
yaxis = Report(biv)[AxisBox(2)];
xaxis << Min(-1*val) << Max(val);
yaxis << Min(-1*val) << Max(val);