Control deslizante de rango para controlar el rango de ejes del gráficoUn bucle genera varios constructores de gráficos sin ningún nombre en particular. Quería crear un control deslizante de rango que me permitiera cambiar el rango del eje X de TODOS los gráficos del diario (que tienen todos el mismo rango), pero no estoy seguro de cómo hacerlo.
Re: Control deslizante de rango para controlar el rango de ejes del gráfico¡Impresionante! Y para que fuera un control deslizante de rango, hice lo siguiente:
Nombres predeterminados aquí (1);
dt = Abrir( "$SAMPLE_DATA\big class.jmp" );
dt:edad << tipo de modelado( "continuo" );
gb1 = dt << Generador de gráficos(
Tamaño (528, 448),
Mostrar panel de control (0),
Variables (X (: edad), Y (: altura)),
Elementos( Puntos( X, Y, Leyenda( 5 ) ) )
);
gb2 = dt << Generador de gráficos(
Tamaño (528, 448),
Mostrar panel de control (0),
Variables( X( :edad ), Y( :peso ) ),
Elementos( Puntos( X, Y, Leyenda( 5 ) ) )
);
slidervar = Informe( gb1 )[axisbox( 1 )] << get min;
slidervar2 = Informe( gb1 )[axisbox( 1 )] << get max;
Nueva ventana( "Ejemplo",
Caja de panel( "Caja deslizante",
H Cuadro de lista(
rsb = Cuadro deslizante de rango(
Informe( gb1 )[axisbox( 1 )] << obtener mínimo, Informe( gb1 )[axisbox( 1 )] << obtener máximo, slidervar, slidervar2,
(
Informe( gb1 )[axisbox( 1 )] << Min( slidervar );
Informe( gb1 )[axisbox( 1 )] << Max( slidervar2 );
Informe( gb2 )[axisbox( 1 )] << Min( slidervar );
Informe( gb2 )[axisbox( 1 )] << Max( slidervar2 );
);
)
)
)
);
¡Y con eso pude hacer lo que necesitaba para mi propio guión! Jim, muchas gracias!
Re: Control deslizante de rango para controlar el rango de ejes del gráficoLo entendiste.
Re: Control deslizante de rango para controlar el rango de ejes del gráficoBien, entonces tengo una función que hace mis gráficas.
Estás diciendo que hagas una lista vacía como graphslist = {};
Luego en la función,
llame al generador de gráficos alguna variable como a = table << Generador de gráficos();
Luego inserte en (graphslist, a);
¿Es esto lo que quieres decir?
Re: Control deslizante de rango para controlar el rango de ejes del gráficosimplemente capture el puntero a cada objeto de visualización en una lista, y luego podrá acceder a cada uno de ellos haciendo referencia a cada uno volviendo a través de la lista.
Re: Control deslizante de rango para controlar el rango de ejes del gráficoJim,
pero noté que nombraste individualmente todos los objetos de tu generador de gráficos.
Como decía en mi pregunta, actualmente mi programa funciona creándolas en bucle para que no se llamen nombres de variables. Por eso no sé cómo referirme al Informe.
Re: Control deslizante de rango para controlar el rango de ejes del gráficoLa forma más sencilla de hacerlo sería abrir un filtro de datos global y seleccionar la variable del eje X como variable de filtro. Configurará un control deslizante que le permitirá cambiar el rango.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt:age << modeling type( "continuous" );
gb1 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
gb2 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
dt << Data Filter(
Location( {780, 189} ),
Mode( Show( 1 ), Include( 1 ) ),
Add Filter( columns( :age ) )
);
Si desea desarrollar su sistema, puede configurar un cuadro deslizante para cambiar los valores mínimo y máximo. Puede configurar algo como esto:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt:age << modeling type( "continuous" );
gb1 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
gb2 = dt << Graph Builder(
Size( 528, 448 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :weight ) ),
Elements( Points( X, Y, Legend( 5 ) ) )
);
slidervar = Report( gb1 )[axisbox( 1 )] << get min;
slidervar2 = Report( gb1 )[axisbox( 1 )] << get max;
New Window( "Example",
Panel Box( "Slider Box",
H List Box(
sb = Slider Box(
Report( gb1 )[axisbox( 1 )] << get min,
Report( gb1 )[axisbox( 1 )] << get max,
slidervar,
Report( gb1 )[axisbox( 1 )] << Min( slidervar );
Report( gb2 )[axisbox( 1 )] << Min( slidervar );
),
sb2 = Slider Box(
Report( gb1 )[axisbox( 1 )] << get min,
Report( gb1 )[axisbox( 1 )] << get max,
slidervar2,
Report( gb1 )[axisbox( 1 )] << Max( slidervar2 );
Report( gb2 )[axisbox( 1 )] << Max( slidervar2 );
)
)
)
);
También puede agregar un script de gráficos a cada uno de los constructores de gráficos, que detecta cambios en el rango y origen de AxisBox(1), y luego, cuando se detecta un cambio, copia la configuración de AxisBox(1) del gráfico donde se produjo el cambio. se detecta, a cada uno de los otros gráficos. Obviamente, esto es más complejo, sin embargo, tiene la ventaja de no tener que tener una ventana separada con un control deslizante.