El generador de gráficos no se escalará automáticamenteHola,
Estoy lanzando un generador de gráficos y un filtro de datos desde un tablero. El gráfico es la fecha en el eje x y 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 elimino el mínimo y el máximo, y luego funciona, pero necesito que la escala automática se realice automáticamente.
El script del generador de gráficos se ve así:
SPC = Abrir("C:\blahblahblah.csv",invisible);
column(SPC,"blah")<
column(SPC,"blah2")<
plot_box=vlistbox(
SPC << Creador 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 de ejecución",
caja de escala,
{Intervalo ("Día"),
Inc( 3 ), Marcas menores( 1 ),
(luego un montón de líneas de referencia)
...
¿Podría alguien por favor aconsejarme?
Gracias .
Re: El generador de gráficos no se escalará 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 volver a escalar con esta configuración al filtrar es cambiar la fecha al tipo de datos "ordinal"
Re: El generador de gráficos no se escalará 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.Aquí hay 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 escalará automáticamenteGracias por su respuesta.
Extrañamente, 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 trato de seleccionar un rango de fechas que no incluye líneas de referencia, la fecha (eje x) no no escala, pero se excluyen los datos fuera de ese rango; si selecciono un rango de fechas que está dentro de la agrupación de líneas de referencia, las fechas (eje x) se escalarán). Tengo JMP 11; tal vez esto es un error en esta versión? ¿O tal vez no debería haber codificado en mis líneas de referencia? Sin embargo, no sé cómo trazar líneas de referencia a lo largo del eje x ...
Re: El generador de gráficos no se escalará automáticamenteVeo el mismo comportamiento en GraphBuilder.noté la opción Escalas de bloqueo en GraphBuilder. Sin embargo, si especifico Bloquear escalas (0) cuando se crea GraphBuilder, el eje x aún no cambia de escala.Si después de crear el GraphBuilder usted active Bloquear escalas y desactívelo, el eje se escalará, pero no tendrá ningún formato de eje personalizado. El siguiente ejemplo usa 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, hay Data Filter Handler, 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 );