Generador de gráficos Tamaño de fotograma JSLHola a todos,
Esta podría ser una solución fácil y rápida. Pero me cuesta un poco encontrar la manera correcta de hacerlo.
Estoy tratando de descubrir cómo tener un tamaño de cuadro consistente con todos los gráficos en el generador de gráficos y una configuración de leyenda consistente. Ejecuto un bucle FOR que tiene valores numéricos al final de la tabla de datos. Podría variar de 1 a muchas columnas e intento trazar todas las columnas en el eje Y.
La principal discrepancia ocurre cuando el eje Y tiene solo un parámetro, esa leyenda no aparece, pero al tener 2 o más parámetros, la leyenda aparece automáticamente y no tengo que escribir un comando JSL por separado. Por eso, cada gráfico se ve diferente debido a la falta de espacio en la configuración de la leyenda.
¿Alguna idea sobre cómo resolver esto?
Gracias
Re: Constructor de gráficos Tamaño de fotograma JSL¿Gráficos con el mismo tamaño de marco?¿Es esto posible en Jmp?
Pregunté al soporte de Jmp (TS-00076249) y obtuve la respuesta:
Sí, diría que es posible, pero puede requerir bastante scripting para lograr esto para todos los gráficos posibles que desee crear, especialmente si está hablando de Graph Builder.
Para tener en cuenta la resolución de visualización del monitor actualmente en uso, puede acceder a una DLL de Windows que devolverá la resolución del monitor.Puede utilizar esto para escalar las especificaciones de tamaño de píxeles como desee.Sin embargo, si está trabajando en un entorno de múltiples monitores donde cada monitor puede tener una resolución diferente, resulta prácticamente imposible tener en cuenta la resolución porque no hay forma de saber en qué monitor está su gráfico.
Bien, entonces, ¿cómo?
¿Es realmente tan complicado generar gráficos con tamaños coincidentes?
Caso de uso:
Usamos PowerPoint para presentar nuestros análisis de Jmp.
Para obtener transiciones suaves de una página a otra, queremos crear todos los gráficos con el mismo tamaño de marco (mismo tamaño para el cuadro exterior de las subtramas NxM de una página, sin ejes) y el mismo tamaño de fuente de los ejes y X/Y. etiquetas de grupo.
Re: Constructor de gráficos Tamaño de fotograma JSLTambién comencé con la esperanza de que alguna combinación de
Fit to Window( "Off" ),
y
Size(...)
podría resolver el problema.
Pero cuando me di cuenta de que en el Código de @ataqueerrático Se utilizan ambas funciones, mi esperanza se había ido.
En el ejemplo, las diferentes etiquetas X conducen a tamaños de gráfico completamente diferentes.
Mientras no haya un rectángulo alrededor de todo el gráfico (incluidos los ejes), nadie notará que ambos tienen el mismo tamaño.
El mismo problema con diferentes tamaños del eje Y:

Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
New Window( "TEST",
V List Box(
Graph Builder(
Size( 500, 200 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Fit to Window( "Off" ),
Variables( X( :Make ), Y( :Wt ) ),
Elements( Bar( X, Y ) )
)
,
Graph Builder(
Size( 500, 200 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Fit to Window( "Off" ),
Variables( X( :Make ), Y( :Wt ) ),
Elements( Bar( X, Y, Legend( 1 ) ) ),
SendToReport(
Dispatch( {}, "Wt", ScaleBox, {Format( "Engineering SI", 12 )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Weight" )} )
)
)
)
)
Re: Constructor de gráficos Tamaño de fotograma JSLSé que esto fue hace mucho tiempo, pero estábamos luchando contra el mismo problema hace unos meses y se nos ocurrió esto:
Names Default to Here( 1 );
win = Get Window List();
// find graph builder windows
graphs = Filter Each({w}, win,
If(Length(w << XPath("//OutlineBox[@helpKey='Graph Builder']")) > 0, 1, 0)
);
// get the last Graph Builder
last_gb = graphs[N Items(graphs)][OutlineBox("Graph Builder")] << Get Scriptable Object;
// set size
last_gb << Fit to Window("Off");
// last_gb << Show Control Panel( 0 );
last_gb << Size(1000,800);
// copy picture
frame = (graphs[N Items(graphs)] << XPath( "//GraphBuilderBox" ))[1];
frame << Copy Picture;El "ajustar a la ventana" fue clave para lograr que los gráficos de salida tuvieran exactamente el tamaño correcto.
Re: Constructor de gráficos Tamaño de fotograma JSL¿Alguna actualización aquí?
suena como un candidato para Tiny Traps en Jmp y JSL

verde: "Tamaño"
azul: tamaño del marco
morado: tamaño de la parcela
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window("test",
H List Box(
Graph Builder(
Size( 500, 300 ),
Show Control Panel( 0 ),
Show Legend( 0 ),
Variables(
X( :name ),
X( :age, Position( 1 ) ),
X( :sex, Position( 1 ) ),
Y( :height ),
Group X( :sex )
),
Elements( Points( X( 1 ), X( 2 ), X( 3 ), Y) ),
SendToReport(
Dispatch( {}, {"height vs. name & 2 more"}, TextEditBox,
{Set Text( "my title\!nspans over 2 lines" )}
),
Dispatch( {}, {:height}, TextEditBox,
{Set Text( "very long Y axis title " ), Rotate Text( "Horizontal" )}
)
)
);,
Graph Builder(
Size( 500, 300 ),
Show Control Panel( 0 ),
Variables( X( :sex ), Y( :height ), Group X( :age ) ),
Elements( Points( X, Y ) ),
SendToReport(
Dispatch( {}, {:height}, TextEditBox,
{Set Text( "x" ), Rotate Text( "Horizontal" )}
)
)
)));
Re: Constructor de gráficos Tamaño de fotograma JSLEso es lo contrario de lo que quiero: necesito el Cuadro de marco() solo para tener el tamaño especificado.Aquí hay un código de ejemplo que ilustra esto.El Tamaño (500, 500) se alimenta a ambos, pero claramente el Cuadro de marco() el tamaño no es mucho (500, 500) .
De hecho, ni siquiera es el GraphBuilderContainerBox() que muestra que está configurado en el tamaño dado; primero debe eliminar el LeyendaBox() , luego el resto (título/ejes/encabezados de ejes) se establece en el (500.500) tamaño.¡Es simplemente ridículo!
Literalmente no hay manera de configurar el Cuadro de marco() (como en, si tuvieras esto dentro de un Cuadro de esquema( "", Generador de gráficos(...) ) y lo hizo Cuadro de esquema[Cuadro de marco( 1 )] << Tamaño de marco( 500, 500 )) ANTES / DURANTE la creación de instancias del Constructor de gráficos() caja.SÓLO se puede hacer después de que se hayan creado la ventana y el gráfico.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Cars.jmp" );
New Window( "TEST",
H List Box(
Graph Builder(
Size( 500, 500 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables(
X( :Make ),
X( :Model, Position( 1 ) ),
X( :Year, Position( 1 ) ),
X( :Protection, Position( 1 ) ),
X( :"D/P"n, Position( 1 ) ),
X( :Size, Position( 1 ) ),
X( :Doors, Position( 1 ) ),
Y( :Wt ),
Color( :Model )
),
Elements(
Bar(
X( 1 ),
X( 2 ),
X( 3 ),
X( 4 ),
X( 5 ),
X( 6 ),
X( 7 ),
Y,
Legend( 9 )
)
)
)
,
Graph Builder(
Size( 500, 500 ),
Show Control Panel( 0 ),
Fit to Window( "Off" ),
Variables( X( :Make ), Y( :Wt ) ),
Elements( Bar( X, Y, Legend( 11 ), Error Interval( "Standard Error" ) ) ),
SendToReport(
Dispatch(
{},
"Graph Builder",
FrameBox,
{Grid Line Order( 1 ), Reference Line Order( 2 )}
)
)
)
)
)Lo que necesito es para el área que tiene el gráfico (el Cuadro de marco() ) tenga un tamaño fijo determinado, independientemente del tamaño de mi eje o de lo complicado y largo que sea el texto.

Re: Constructor de gráficos Tamaño de fotograma JSLEl elemento Tamaño establece el tamaño del Marco (FrameBox()).

No configura GraphBuilderContainerBox()

Supongo que es para lo que esperabas que se estableciera el tamaño.
Re: Constructor de gráficos Tamaño de fotograma JSLEsto no funciona.El TAMAÑO DEL MARCO depende del tamaño de las áreas de leyenda/texto alrededor del MARCO.
Re: Constructor de gráficos Tamaño de fotograma JSL@vishwasanj
El argumento de tamaño y sus parámetros se pueden utilizar para definir y limitar el tamaño de sus ventanas como se muestra en el siguiente ejemplo.
Graph Builder(
Size( 1230, 650 ),
Show Control Panel( 0 ),
Variables( X( :age ), Y( :height ), Y( :weight ) ),
Elements( Position( 1, 1 ), Line( X, Y, Legend( 1 ) ) ),
Elements( Position( 1, 2 ), Bar( X, Y, Legend( 2 ) ) )
)
Re: Constructor de gráficos Tamaño del marco JSLPresenté un deseo:
Funcionalidad para generar Parcelas con Tamaño de Parcela Específico
vamos a ver ...
Re: Constructor de gráficos Tamaño de fotograma JSLHola vishwasanj,
También me encuentro con este problema. Comparta mi solución con usted, aunque puede que no sea una forma eficiente.
Para simplificar, explico únicamente el eje X (dirección horizontal).
Dado que el tamaño de Framebox de una plantilla estándar es 500, el tamaño del gráfico completo es 535. Eso significa que tenemos un tamaño que no pertenece a Framebox y es 35.
Luego, tenemos un gráfico generado por un bucle for, después de asignar el tamaño del marco = 500, el tamaño total = 550.
Luego, considerando que estos gráficos se exportarán como png de tamaño total fijo, si tenemos la misma proporción de tamaño de marco a tamaño total, podemos tener el mismo tamaño de marco.
Es decir, podemos agregar 'dx' al gráfico anterior para que la proporción sea la misma.
500:535=(500+dx):(550+dx+dx2),
donde dx2 es el aumento de la longitud del eje después de aplicar dx.
Sin embargo, en mi experiencia, dx2 es básicamente insignificante.
Por lo tanto, podemos cambiar el tamaño de las imágenes de 550 de ancho con tamaño de marco = 500 + dx, donde
500:535=(500+dx):(550+dx).
Después de exportar como png de tamaño similar, podemos tener imágenes del mismo tamaño de marco.Re: Constructor de gráficos Tamaño de fotograma JSLEcha un vistazo a mi publicación, espero que pueda ayudarte.Re: Tamaño del marco del generador de gráficos JSLNuevo enlace al deseo (el antiguo parece estar roto):
Funcionalidad para generar Parcelas con Tamaño de Parcela Específico
Mientras tanto, el deseo acumuló 15 Kudos.:)
Re: Constructor de gráficos Tamaño del marco JSLAhora tenemos 26 Kudos.