El generador de gráficos no se escala automáticamenteHola,
Estoy lanzando un generador de gráficos y un filtro de datos desde un panel. El gráfico es la fecha en el eje x y la cuenta en el eje y. Cuando filtro la fecha, los datos fuera del rango de fechas desaparecen del gráfico, pero el gráfico no escala automáticamente el eje x para que coincida con las fechas dentro del rango filtrado (en cambio, el rango de fechas del eje x es el mismo que antes de filtrar el rango de fechas).
Sé que puedo abrir la tabla de datos, luego ir a las propiedades de la columna, luego al eje, luego eliminar el mínimo y el máximo, y luego funciona, pero necesito que el escalado automático se realice automáticamente.
El script del generador de gráficos se ve así:
SPC = Abrir("C:\blahblahblah.csv",invisible);
columna(SPC,"blah")<
columna(SPC,"blah2")<
plot_box=vlistbox(
SPC << Generador de gráficos (
Tamaño (1372, 867),
Mostrar panel de control (0),
Recálculo automático( 1 ),
Estiramiento automático (0),
Variables (X (: Fecha y hora de ejecución), Y (: blah), Y (: blah2), Superposición (: blah3)),
Elementos(
Posición (1, 1),
Puntos (X, Y, Leyenda (1), Jitter (1)),
),
Elementos(
Posición (1, 2),
Puntos (X, Y, Leyenda (4), Jitter (1)),
),
Enviar a informe (
Despacho(
{},
"Fecha y hora transcurridas",
caja de escala,
{Intervalo ("Día"),
Inc( 3 ), Tics menores( 1 ),
(luego un montón de líneas de referencia)
...
¿Alguien podría aconsejarme?
Gracias .
Re: El generador de gráficos no se escala automáticamenteHola, la única forma en que encontré que Graph Builder mantendría la configuración de fecha del eje X que quiero y permitiría cambiar la escala con esta configuración al filtrar es cambiar la fecha al tipo de datos "ordinal".
Re: El generador de gráficos no se escala automáticamenteVeo un comportamiento de cambio de escala similar en JMP 14, usando líneas de referencia en el eje x. En otras palabras, parece que JMP intenta mantener el guión o las líneas de referencia.A continuación se muestra un ejemplo de cómo especificar líneas de referencia a través de JSL.
Dispatch(
{},
"Date",
ScaleBox,
{Format( "yyyyQq", 6 ), Min( 3092688000 ), Max( 3284668800 ),
Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 ),
Add Ref Line( Informat("06Mar2003", "ddmonyyyy"), "Solid", "Gray", "", 1 ),
Add Ref Line( Informat("16Jul2006", "ddmonyyyy"), "Solid", "Black", "", 1 )}
)Si publica una maqueta de cómo agrega las líneas de referencia, puedo mostrar un script para agregar un cuadro de botón para forzar el cambio de escala. No podré probarlo, ya que no tengo JMP 11, pero creo que funcionará.
Re: El generador de gráficos no se escala automáticamenteGracias por su respuesta.
Curiosamente, cuando realizo escalas de bloqueo y escalas de desbloqueo, las fechas no se escalan para los rangos de fechas fuera de mis líneas de referencia (si intento seleccionar un rango de fechas que no incluye ninguna línea de referencia, la fecha (eje x) no no escalar, pero los datos fuera de ese rango se excluyen; si selecciono un rango de fechas que esté dentro del grupo de líneas de referencia, las fechas (eje x) se escalarán). Tengo JMP 11; ¿Quizás esto sea un error en esta versión? ¿O quizás no debería haber codificado mis líneas de referencia? Aunque no sé cómo trazar líneas de referencia a lo largo del eje x...
Re: El generador de gráficos no se escala automáticamenteVeo el mismo comportamiento en GraphBuilder.Noté la opción Balanzas de bloqueo en GraphBuilder. Sin embargo, si especifico Lock Scales(0) cuando se crea GraphBuilder, el eje x aún no cambia la escala.Si después de crear GraphBuilder usted active Bloquear escalas y desactívelo, el eje se escalará, pero no tendrá ningún formato de eje personalizado. El siguiente ejemplo utiliza yyyyQq. El siguiente script se ejecutará en JMP 12, 13 y 14.
Si tiene JMP 14, elimine /* en la línea 52 y ejecute el script.En JMP 14, existe el controlador de filtro de datos, un script que se ejecuta cuando se cambia el filtro. Entonces, si tiene un formato de eje especial, puede especificarlo en el controlador.
Lock Scales(0) en la función de llamada de GraphBuilder no parece funcionar como se describe. Pero habilitar y deshabilitar parece funcionar.
Names Default to Here(1);
dt = Open("$sample_data/Australian Tourism.jmp");
gb = dt << Graph Builder(
Show Control Panel( 0 ),
Show Legend( 0 ),
Lock Scales(0),
Variables(
X( :Date ),
Y( :Name( "Revenue ($'000)" ) ),
Y( :Name( "Bed occupancy rate (%)" ) ),
Y( :Name( "Average length of stay (days)" ) )
),
Elements(
Position( 1, 1 ),
Points( X, Y, Legend( 4 ) ),
Smoother( X, Y, Legend( 3 ) )
),
Elements(
Position( 1, 2 ),
Points( X, Y, Legend( 1 ) ),
Smoother( X, Y, Legend( 2 ) )
),
Elements(
Position( 1, 3 ),
Points( X, Y, Legend( 6 ) ),
Smoother( X, Y, Legend( 5 ) )
),
SendToReport(
Dispatch(
{},
"Date",
ScaleBox,
{Format( "yyyyQq", 6 ), Min( 2953282344.82759 ), Max( 3408220800 ),
Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 )}
),
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Tourism Trends" )} )
)
);
filter = gb << Local Data Filter(
Add Filter(
columns( :Year )
)
);
gb << Lock Scales(1);
wait(0);
gb << Lock Scales(0);
/*
f = function({a},
print(a);
gb << Lock Scales(1);
wait(0);
gb << Lock Scales(0);
gb << Dispatch(
{},
"Date",
ScaleBox,
{Format( "yyyyQq", 6 ),
Interval( "Year" ), Inc( 1 ), Minor Ticks( 0 )}
);
);
rs = filter << Make Filter Change Handler( f );