Re: ¿Cómo puedo cambiar todos los ejes X en un generador de gráficos a escala logarítmica?Una forma de manejar esto es usar atributos estandarizados para cambiar la propiedad de la columna del eje.
Para cambiar todos los ejes para registrar:
- Vaya a la tabla de datos y seleccione las columnas para las que desea cambiar los ejes
- Seleccione Cols=>Estandarizar atributos
- Seleccione Propiedades de columna => Eje
- Haga clic en Establecer configuración de eje predeterminada
- Cambiar la escala de lineal a logarítmica
- Haga clic en Aceptar
Los ejes para todos los ejes X en el gráfico se cambiarán a una escala logarítmica
Re: ¿Cómo puedo cambiar todos los ejes X en un generador de gráficos a escala logarítmica?Muchas gracias por la sugerencia.
Sin embargo, mi uso de Graph Builder es bastante dinámico y, a menudo, es difícil predecir qué columnas se usarán para trazar.
¿Hay algún script que pueda usar para convertir los ejes X que ya usa una figura de Graph Builder?
Por ejemplo, sé que puedo hacer eso para la matriz de diagrama de dispersión con
For( i = 100, i < 200, i++,
(Current Window() << XPath( "//ScaleBox[@charID=" || Char( i ) || "]" )) << Revert Axis
<< {Scale( "Log" ), Inc( 1 ), Minor Ticks( 1 )}
)
Re: ¿Cómo puedo cambiar todos los ejes X en un generador de gráficos a escala logarítmica?No es necesario iterar. La lista de cuadros de visualización distribuirá los mensajes que recibe a cada uno de sus elementos de forma automática, por lo que solo debe asegurarse de que la lista sea correcta. Por ejemplo:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
sm = dt << Scatterplot Matrix(
Y( :Age, :Weight, :Oxy, :Runtime, :RunPulse, :RstPulse, :MaxPulse ),
Matrix Format( "Lower Triangular" )
);
(Report( sm ) << XPath( "//AxisBox" ))
<< Revert Axis
<< Scale( "Log" )
<< Inc( 10 )
<< Minor Ticks( 0 );
Re: ¿Cómo puedo cambiar todos los ejes X en un generador de gráficos a escala logarítmica?Mi problema es que quiero mantener los ejes y en escala lineal pero cambiar los ejes x a escala logarítmica. Sin iteración, me temo que ambos ejes X/Y se cambiarán a escala logarítmica.
Por cierto, ¿funciona un enfoque similar para Graph Builder?
Re: ¿Cómo puedo cambiar todos los ejes X en un generador de gráficos a escala logarítmica?Este enfoque todavía funciona. Subíndice la lista primero para obtener una nueva lista con solo los cuadros de eje que desea cambiar, luego envíe los mensajes a esa lista de destino. Esta forma sigue siendo mucho más fácil y limpia que el bucle explícito.
Aquí hay una modificación de mi primer ejemplo para ilustrar el nuevo enfoque:
Names Default to Here( 1 );
dt = Open( "$SAMPLE_DATA/Fitness.jmp" );
sm = dt << Scatterplot Matrix(
Y( :Age, :Weight, :Oxy, :Runtime, :RunPulse, :RstPulse, :MaxPulse ),
Matrix Format( "Lower Triangular" )
);
// change X axes only in Scatterplot Matrix
axes = Report( sm ) << XPath( "//AxisBox" );
nAxes = N Items( axes );
// second half of list only
axes[((nAxes/2)+1)::nAxes] << Select; // Scale( "Log" );
Sin embargo, no funciona bien con Scatterplot Matrix, porque todas las columnas de datos excepto una se usan en el rol X e Y, y la lógica interna intenta mantener los cambios consistentes en ambos lugares (rol X e Y).
Re: ¿Cómo puedo cambiar todos los ejes X en un generador de gráficos a escala logarítmica?Dado que no puedo encontrar una manera de identificar los ejes X de los ejes Y, mi solución actual es usar este comando para establecer todos los ejes en la escala logarítmica y luego revertir manualmente los ejes Y a la escala lineal, que es mucho más fácil que la configuración manual de la escala logarítmica .
(Ventana actual() << XPath( "//AxisBox" ) ) << Revertir eje << {Escala( "Log" ), Inc( 1 ), Minor Ticks( 1 )}
¿Cómo puedo cambiar todos los ejes X en un generador de gráficos a escala logarítmica?Hacer doble clic en los ejes es un verdadero dolor de cabeza.

Exploración y visualización de datos