Cómo cambiar el tamaño del panel del generador de gráficos al utilizar la organización Página/Organizar en filasHola a todos,
Esperaba que alguien pudiera ayudarme a descubrir el código para cambiar el tamaño del panel en el generador de gráficos.
Esto es del conjunto de datos de la clase grande:

Si quisiera configurar el tamaño para que sea mucho más grande usando JSL (la ventana de ajuste automático está desactivada) a algo como esto:

¿Cómo podría lograr eso?
La razón por la que necesito esta funcionalidad es que actualmente, si usas un filtro para la columna "Página", los gráficos se hacen cada vez más pequeños cuanto más niveles tienes. Cuando tienes un montón de niveles, pueden volverse tan pequeños que ni siquiera puedes ver el controlador para cambiar el tamaño de los paneles. Entonces, tengo que seleccionar algunos niveles, cambiar el tamaño, seleccionar algunos niveles más, cambiar el tamaño, etc. Es muy molesto y elimina parte de la genialidad de esta nueva capacidad del generador de gráficos. Por otro lado, si tienes un montón de niveles con el tamaño correcto, al eliminar niveles en el filtro, los gráficos se hacen cada vez más grandes.
Entonces quiero poder tener un cuadro de entrada a través de JSL donde pueda cambiar el tamaño fácil y rápidamente.
¡Espero que esto tenga sentido y gracias por cualquier idea!
Steve
Automatización y scriptingExploración y visualización de datosRe: Cómo cambiar el tamaño del panel del generador de gráficos al utilizar la organización Página/Organizar en filasQuería agregar donde terminé en base a su código, dar una ventana flotante donde puedo dimensionar interactivamente los paneles a mi gusto:
//rev 5-5-24
Names Default To Here(1);
dt=current data table();
obj=current report()["Graph Builder"]<< get scriptable object;
obj1 = obj << Get Window Title;
s = Window(obj1)<< Get Window Size();
nw = New Window("Resize Graph Builder Page Panels",Show Menu( 0 ),Show Toolbars( 0 ),
V List Box(
h list box(
vlist box(
text box("frame Size Y"),
neb1=Number Edit Box( 250 );
),
vlistbox(
textbox("frame Size X"),
neb2=Number Edit Box( 350 );
)
),
Button Box("Update Frames",
Report(obj)<< Fit to Window("Off");
nebval1=neb1 << Get;
nebval2=neb2 << Get;
(Report(obj) << XPath("//FrameBox")) << Frame Size(nebval2, nebval1);
window(obj1) << Set Window Size( s );
),
)
);
nw << Size Window( 400, 200 );
window(obj) << On Close(window("Resize Graph Builder Page Panels")<<CLOSE window=""></CLOSE>Re: Cómo cambiar el tamaño del panel del generador de gráficos al utilizar la organización Página/Organizar en filas¡Eso funciona de maravilla, gracias!
Re: Cómo cambiar el tamaño del panel del generador de gráficos al utilizar la organización Página/Organizar en filasDebe activarse de alguna manera, probablemente mediante algún control o controlador (en ese ejemplo, puede, por ejemplo, llamar a la misma función antes de que se aplique el controlador de filtro con algo como f(0) )
Ver más...
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
change_frame_size = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
change_frame_size(0);
rs = ldf << Make Filter Change Handler(change_frame_size);
A continuación se muestra el caso más simple en el que se activa al presionar un botón.
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
Button Box("Update Frames",
(Report(window:gb) << XPath("//FrameBox")) << Frame Size(300, 300);
),
window:gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92))),
Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
)
)
)
);
Re: Cómo cambiar el tamaño del panel del generador de gráficos al utilizar la organización Página/Organizar en filas¡Gracias Jarmo! Esto está muy cerca, pero parece que cuando ejecuto esta sección del código con un nuevo tamaño:
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(500, 500);
);
rs = ldf << Make Filter Change Handler(f);Ese generador de gráficos no actualiza el tamaño de los gráficos hasta que cambio las opciones de filtro. ¿Hay alguna manera de forzar al gráfico a actualizar el tamaño sin que sea necesario cambiar el filtro?
El plan es tener una ventana flotante donde pueda ingresar diferentes tamaños de marco dependiendo de cuántos niveles haya seleccionado después de que se complete la selección.
¡Gracias por cualquier aportación adicional!
Re: Cómo cambiar el tamaño del panel del generador de gráficos al utilizar la organización Página/Organizar en filasNo estoy seguro de si hay otras opciones además de controlar esto mediante JSL, pero puedes cambiar el tamaño del marco (si no lo hay, podría valer la pena crear un elemento de lista de deseos. "Bloquear tamaño de ventana" para filtros de datos como ya tenemos "bloquear escalas")
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
gb = dt << Graph Builder(
Size(569, 357),
Show Control Panel(0),
Replicate Linked Page Axes(0),
Fit to Window("Off"),
Variables(X(:height), Y(:weight), Page(:age, Levels per Row(3))),
Elements(Points(X, Y, Legend(91)), Smoother(X, Y, Legend(92)))
)
);
ldf = gb << Local Data Filter(
Add Filter(
columns(:age),
Where(:age == {12, 13, 14, 15, 16, 17}),
Display(:age, N Items(6))
)
);
f = Function({a},
fbs = Report(gb) << XPath("//FrameBox");
fbs << Frame Size(300, 300);
);
rs = ldf << Make Filter Change Handler(f);
Es posible que desees agregar algún tipo de "forzamiento de tamaño" al generador de gráficos/tu ventana para que la ventana no siga cambiando de tamaño.