Escalado automático que coincide con los ejes X e YResuelto: Re: Trazar columnas asociadas automáticamente - Comunidad de usuarios de JMP
Como continuación de la discusión anterior, me gustaría automatizar el escalado de algunos gráficos para que sean simétricos con respecto al valor cero en los ejes X e Y.
me gustaria tener esto

salida automática como esta.

El código que me trajo aquí está incluido en el enlace de arriba.
Adiós
llave inglesa
Automatización y secuencias de comandosRe: Escalado automático que coincide con los ejes X e YUna opción es usar algunas matrices para verificar si hay filas "válidas", obtener valores solo de ellas y luego calcular el máximo como antes.
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"]));Re: Escalado automático que coincide con los ejes X e YGracias y tienes razón en lo que dices, creo que no estoy expresando bien la pregunta. Los valores faltantes en X se ignoran al calcular el máximo de X. Los valores Y asociados en la misma fila no faltan y, por lo tanto, no se ignoran. Debo aclarar que estoy iterando a través de columnas en una tabla de datos y trazando automáticamente métricas que están conectadas.
Este script podría elegir un umbral de voltaje y trazarlo contra el valor actual respectivo si se selecciona. Cuando esto cambia la escala al final, un valor faltante en X, por ejemplo, hará que no haya ningún punto de datos en el gráfico; sin embargo, el valor Y asociado aún podría establecer la escala del gráfico.
To ensure the plot contains the 100 value on both axed, I did modify the matrix to include 110 with |/110;
Adiós
cabeza de llave
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>Re: Escalado automático que coincide con los ejes X e YComo conoce las columnas que está utilizando, puede usar Col Min + Col Max para obtener los valores mínimo y máximo (deben respetar los códigos de valor faltante). Luego use una combinación de sus valores, la función Abs() y la función Max() para obtener su valor para usar en los ejes x e y.
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")));
pero también creo que Bivariado no debería trazar esos puntos en absoluto si han sido ignorados por los códigos de valor perdido
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);Re: Escalado automático que coincide con los ejes X e YTengo muchos códigos de error que son numéricos para preservar el tipo de datos de la columna. Necesito hacer la vista gorda ante los que están en el análisis. Sin embargo, si X o Y están marcados con un código de valor faltante y el socio no, las escalas se pueden configurar mediante datos que en realidad no están trazados en el gráfico.

Gracias por la gran ayuda.
Adiós
llave inglesa
Re: Escalado automático que coincide con los ejes X e Y¿Qué significa en este caso "marcado como desaparecido"?
Si desea conservar el otro valor, creo que debería funcionar incluso si a las matrices les faltan valores.

Re: Escalado automático que coincide con los ejes X e YHay una pequeña cosa de la que me di cuenta. En algunos casos, a una de las matrices ys o xs le faltan valores porque se le ha asignado un código de valor faltante. Los valores de la matriz de socios no pueden faltar y pueden incluirse para establecer las escalas. ¿Hay alguna manera de eliminar valores de ys si la fila está marcada como faltante para xs y se produce la misma eliminación de xs cuando ys es un valor faltante?
Adiós
llave inglesa
Re: Escalado automático que coincide con los ejes X e Y¡Épico! Funciona de maravilla.
Re: Escalado automático que coincide con los ejes X e YCalcular los valores máximos (de valores absolutos), tomar un valor negativo y establecer los valores podría ser una opción. También puede calcular los valores de la tabla de datos usando Col Max() / Col Min() o Resumir
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);