Cómo hacer que el "Tamaño" de Graph Builder se escale a los ejesSupongamos que tengo un conjunto de datos de defectos encontrados en una superficie de productos manufacturados que se ve así:
| SN | X(cm) | Y(cm) | Diámetro (cm) |
| 0001 | 2.3 | 1.15 | 0,04 |
| 0001 | 2.7 | 0,44 | 0,12 |
| 0001 | 1.5 | 2.6 | 0,35 |
| 0002 | 5.4 | 1.9 | 0,17 |
| 0002 | 3.1 | 4.1 | 0,59 |
En Graph Builder, dado que filtro datos locales del SN y grafico X(cm)->X, Y(cm)->Y y Diámetro(cm)->Tamaño, ¿hay alguna manera de hacer que los tamaños de puntos resultantes se dibujen a escala en el gráfico?
Exploración y visualización de datosRe: Cómo hacer que el "Tamaño" de Graph Builder se escale a los ejesSolución fácil, pero no perfectamente escalada.

Resolviendo el problema con solo unos pocos clics:
En el generador de gráficos, coloco X e Y en los cuadros de los ejes X e Y, luego arrastro SN al rol de color y Diámetro al rol de tamaño.
Así es como se vería el script:
Graph Builder(
Size( 409, 391 ),
Variables(
X( :"X(cm)"n ),
Y( :"Y(cm)"n ),
Color( :SN ),
Size( :"Diameter(cm)"n )
),
Elements( Points( X, Y, Legend( 9 ) ) )
);
Re: Cómo hacer que el "Tamaño" de Graph Builder se escale a los ejesParece que replicaste bien el proceso de la pregunta. Esperaba que alguien conociera una opción para hacer clic con la tecla Mayús o algo más que pudiera ayudar con el escalado.
Re: Cómo hacer que el "Tamaño" de Graph Builder se escale a los ejesCreo que podrías tener que hacer esto con un script gráfico. A continuación se muestra una solución muy rápida y sencilla que puede darte una idea de lo que podrías hacer.
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
Compress File When Saved(1),
New Column("SN", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 1, 2, 2])),
New Column("X(cm)", Numeric, "Continuous", Set Values([2.2999999999999998, 2.7000000000000002, 1.5, 5.4000000000000004, 3.1000000000000001])),
New Column("Y(cm)", Numeric, "Continuous", Set Values([1.1499999999999999, 0.44, 2.6000000000000001, 1.8999999999999999, 4.0999999999999996])),
New Column("Diameter(cm)",
Numeric,
"Continuous",
Set Values([0.040000000000000001, 0.12, 0.34999999999999998, 0.17000000000000001, 0.58999999999999997])
)
);
gb = dt << Graph Builder(
Size(518, 454),
Show Control Panel(0),
Lock Scales(1),
Variables(X(:"X(cm)"n), Y(:"Y(cm)"n), Size(:"Diameter(cm)"n)),
Elements(Points(X, Y, Legend(5))),
Local Data Filter(Add Filter(columns(:SN), Modeling Type(:SN, Nominal)))
);
frame = Report(gb)[FrameBox(1)];
Eval(EvalExpr(
frame << Add Graphics Script(
cur_gb = Expr(Report(gb));
fb = cur_gb[FrameBox(1)];
ms = fb << Find Seg(Marker Seg(1));
xs = ms << Get X Values;
ys = ms << Get Y Values;
For(i = 1, i <= N Items(xs), i++,
dt = cur_gb << Get Data Table;
m_rows = dt << Get Rows Where(:"X(cm)"n == xs[i] & :"Y(cm)"n);
diam = dt[m_rows, "Diameter(cm)"][1];
Circle({xs[i], ys[i]}, diam/2);
);
);
));

Lea también cómo se comporta el radio del círculo https://www.jmp.com/support/help/en/18.0/#page/jmp/graphics-functions.shtml?os=win&source=application#ww2626013
Re: Cómo hacer que el "Tamaño" de Graph Builder se escale a los ejesGracias, @jthi . ¡Obviamente tienes un dominio impresionante de JSL!
Parece que esta es una función que JMP debería tener y parece que sería fácil incorporarla a la configuración del tamaño del marcador (al menos desde una perspectiva de interfaz de usuario). La agregaré a la lista de deseos.
Re: Cómo hacer que el "Tamaño" de Graph Builder se escale a los ejesArtículo de la lista de deseos publicado aquí:
Graph Builder: habilite el dimensionamiento de puntos teniendo en cuenta los ejes con la zona de colocación de tamaño - Comunidad de usuarios de JMP
@jthi : ¿está bien copiar y pegar la imagen de ejemplo de arriba en el elemento de la lista de deseos?
Re: Cómo hacer que el "Tamaño" de Graph Builder se escale a los ejesPor supuesto. Puedes modificarlo un poco para usar el argumento "RELLENAR" en el círculo, de modo que se vea algo como esto (puede ser una buena idea ocultar la leyenda cuando hagas esto, ya que los círculos contienen la información de tamaño, no los marcadores subyacentes).

Re: Cómo hacer que el "Tamaño" de Graph Builder se escale a los ejesNo estoy siguiendo exactamente toda esta discusión, pero pensé que algunas notas podrían ser relevantes.
- Hay un comando "Ajustar a isométrico" en Clic derecho > Gráfico > Tamaño/Escala > Ajustar a isométrico. Ajusta el tamaño del gráfico para que X e Y tengan los mismos valores por píxel. Sin embargo, no se mantiene.
- La variable tamaño se representa como área del círculo, no como diámetro.
- Hace algunas versiones agregamos la funcionalidad Marker Draw Expo a los marcadores y al Generador de gráficos (llamada Expresiones de forma en el menú de triángulo rojo de Puntos).

Graph Builder(
Size( 496, 501 ),
Show Control Panel( 0 ),
Lock Scales(1),
Variables( X( :"X(cm)"n ), Y( :"Y(cm)"n ) ),
Elements(
Points( X, Y, Legend( 5 ),
Set Shape Expression(
Expr(
Function( {this seg, this row, x, y, pixel size, row state},
{r = :"Diameter(cm)"n / 2},
Oval( x - r, y + r, x + r, y - r, 1 )
)
)
)
)
),
Local Data Filter( Add Filter( columns( :SN ), Modeling Type( :SN, Nominal ) ) ),
SendToReport(
Dispatch( {}, "Graph Builder", FrameBox, {Size To Isometric} )
)
);